如何连接小Parquet文件在Hive

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

如何连接小Parquet文件在Hive时,下面是到位。
分区是在配置单元表上动态创建的。
表是外部的。
到目前为止,这个解决方案已经尝试过了,但对于orc文件,它有一个bug:对于orc文件,我在循环中使用了下面的命令来处理所有分区值,而且效果很好。但是数据在连接完成后丢失,这是配置单元中的错误https://issues.apache.org/jira/browse/hive-17280
我正在emr集群上运行配置单元查询,它使用的是配置单元2.3.3,直到配置单元3.0.0才修复
这个命令用来实现,但是用orc文件。我需要这样做Parquet文件。

ALTER TABLE HIVE_DB.HIVE_TABLE_NM PARTITION(partition_field_nm ='${partition_value}') CONCATENATE;

用于orc文件。
需要做类似的拼接小Parquet文件成更大的文件。

hzbexzde

hzbexzde1#

据我所知,通过配置单元合并Parquet文件目前不可用。另外,不建议使用“parquet tools merge”,因为它可能会对数据/模式产生问题。
然而,这可以在 Impala 的帮助下实现。
如果要按分区合并表中的文件,则可以创建一个新表,其中只包含hdfs中包含更多文件的现有表中的分区数据,然后从中删除分区。步骤如下:,
例如,

CREATE TABLE tabA LIKE tabB;

INSERT INTO tabB SELECT * FROM tabA WHERE partition_key=1;

ALTER TABLE tabA DROP PARTITION (partition_key=1);

INSERT INTO tabA PARTITION(partition_key=1) select * from tabB;

DROP TABLE tabB;

其中,taba-hdfs中包含更多Parquet文件的原始表,tabb-创建用于合并taba的Parquet文件的中间表

相关问题