我已经为蜂巢QL作业输出,产生多个小parquet
文件,我想合并文件输出到单个文件的实木复合地板?如何使用linux或hdfs命令将多个实木复合地板文件合并为单个地板文件?
的是使用一些hdfs or linux commands
做到这一点的最好方法是什么?
我们用来合并使用cat
命令的文本文件,但将这项工作木地板呢? 我们可以做写输出文件像我们如何使用repartition
或spark
coalesc
方法时,它使用HiveQL
本身?
我已经为蜂巢QL作业输出,产生多个小parquet
文件,我想合并文件输出到单个文件的实木复合地板?如何使用linux或hdfs命令将多个实木复合地板文件合并为单个地板文件?
的是使用一些hdfs or linux commands
做到这一点的最好方法是什么?
我们用来合并使用cat
命令的文本文件,但将这项工作木地板呢? 我们可以做写输出文件像我们如何使用repartition
或spark
coalesc
方法时,它使用HiveQL
本身?
根据此https://issues.apache.org/jira/browse/PARQUET-460 现在您可以下载源代码并编译合并命令中内置的镶木工具。
java -jar ./target/parquet-tools-1.8.2-SNAPSHOT.jar merge /input_directory/
/output_idr/file_name
一个工具,你还可以用做它HiveQL
本身,如果你的执行引擎是mapreduce
。
你可以设置一个标志您的查询,这会导致蜂巢在您的工作结束合并小档案:
SET hive.merge.mapredfiles=true;
或
SET hive.merge.mapfiles=true;
如果你的工作是一个只图工作。
这将导致蜂巢的工作,许多小拼花文件自动合并到更少的大文件。您可以通过调整hive.merge.size.per.task
设置来控制输出文件的数量。如果您只想要一个文件,请确保将其设置为始终大于输出大小的值。另外,请确保相应地调整hive.merge.smallfiles.avgsize
。如果您想确保配置单元始终合并文件,请将其设置为非常低的值。你可以在配置单元documentation中阅读更多关于此设置的信息。
任何地方我可以只下载一个罐子?建设这是一个痛苦。 – samthebest