Hadoop 将拼花地板数据从HDFS收集到本地文件系统
给定一个分布在HDFS上的拼花地板数据集(元数据文件+mayHadoop 将拼花地板数据从HDFS收集到本地文件系统,hadoop,hdfs,parquet,Hadoop,Hdfs,Parquet,给定一个分布在HDFS上的拼花地板数据集(元数据文件+may.Parquetparts),如何正确合并部件并将数据收集到本地文件系统dfs-getmerge…不起作用-它将元数据与实际拼花文件合并。有一种涉及Apache Spark API的方法-它提供了一种解决方案,但可能存在没有第三方工具的更有效方法 spark> val parquetData = sqlContext.parquetFile("pathToMultipartParquetHDFS") spark>
.Parquet
parts),如何正确合并部件并将数据收集到本地文件系统dfs-getmerge…
不起作用-它将元数据与实际拼花文件合并。有一种涉及Apache Spark API的方法-它提供了一种解决方案,但可能存在没有第三方工具的更有效方法
spark> val parquetData = sqlContext.parquetFile("pathToMultipartParquetHDFS")
spark> parquet.repartition(1).saveAsParquetFile("pathToSinglePartParquetHDFS")
bash> ../bin/hadoop dfs -get pathToSinglePartParquetHDFS localPath
由于Spark 1.4,最好使用DataFrame::coalesce(1)
而不是DataFrame::repartition(1)
您可以使用pig
A = LOAD '/path/to parquet/files' USING parquet.pig.ParquetLoader as (x,y,z) ;
STORE A INTO 'xyz path' USING PigStorage('|');
您可以在其上创建Impala表,然后使用
impala-shell -e "query" -o <output>
impala外壳-e“查询”-o
同样,您也可以使用Mapreduce您可以使用拼花工具
java-jar parquet-tools.jar merge source/target/
谢谢。这是合法的,但我一直在寻找没有第三方工具的东西,比如Pig,Spark,。。。