是否有一个hive/hcat属性可以将分区表导出到单个文件而不是目录?

z18hc3ub  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(312)

我正在尝试导出带有分区的表。默认情况下,它根据分区数生成文件数。是否有一个属性我可以设置合并文件,什么是性能考虑作出这一改变。
我在合并小文件时发现的属性很少,但它们似乎都在一个分区内工作。

set hive.merge.tezfiles=true;
set hive.merge.mapfiles=true;
set hive.merge.mapredfiles=true;
set hive.merge.size.per.task=128000000;
set hive.merge.smallfiles.avgsize=128000000;

我也不能选择编写一个单独的concat代码来在末尾附加文件。

6g8kf2rb

6g8kf2rb1#

如果我没弄错你的问题,你可以 select * from table_name 并将结果导出到文件中。这将把所有数据和分区名放在单独的列中。

beeline -u jdbc:hive2://quickstart:10000/default --quiet --outputformat=dsv --delimiterForDSV='|' --showHeader=false -e "select * from table_name" > output_file.csv

更多关于直线输出的官方文件。
我不认为合并分区中的所有文件是一个好方法,因为这可能会导致数据损坏。

相关问题