Question: Given a Parquet dataset distributed on HDFS (metadata file + may `.parquet` parts), how to correctly merge parts and collect the data onto local file system? `dfs -getmerge ...` doesn't work - it merges metadata with actual parquet files..

Answer: 
There is a way involving Apache Spark APIs - which provides a solution, but more efficient method without third-party tools may exist.

```
spark> val parquetData = sqlContext.parquetFile("pathToMultipartParquetHDFS")       
spark> parquet.repartition(1).saveAsParquetFile("pathToSinglePartParquetHDFS")

bash> ../bin/hadoop dfs -get pathToSinglePartParquetHDFS localPath

```

Since Spark 1.4 it's better to use `DataFrame::coalesce(1)` instead of `DataFrame::repartition(1)`
You may use parquet tools 
 `java -jar parquet-tools.jar merge source/ target/`