sparksql-update启用bucketing的动态分区

n3ipq98p  于 2021-07-13  发布在  Spark
关注(0)|答案(0)|浏览(283)

我有一个配置单元表,它由几个名为p1、p2、p3的键进行分区。表是基于分区键增量更新的。i、 e.添加新分区,以及更新现有分区。配置单元动态分区已启用。

spark.config("hive.exec.dynamic.partition", true)
  spark.config("hive.exec.dynamic.partition.mode", "nonstrict")

spark sql向上插入分区: spark.sql("insert overwrite into table mytable partition(p1, p2, p3) select col1, col2 from myDf") 只有分区方案的问题是生成的小文件太多。我想只有一个分区列,其余的列作为扣板列。
所以现在我的 mytable ddl正在更新以使其 clusterd by(p2, p3) . 我的upsertsql对于p1只有一个分区规范;p2和p3将是投影的一部分。 spark.sql("insert overwrite into table mytable partition(p1) select col1, col2, p2, p3 from myDf") 你觉得这样行吗?bucket可以有p2,p3的任何值,它在 myDf . spark/hive是否可以在bucket中有其他数据而不是 myDf .
此外,hdfs中理想的bucket或文件大小大约是块大小或块大小的一个因子。有没有办法确保文件大小达到128mb或256mb?我不认为它可能与bucketing或分区。我可以添加任何动态扣合功能吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题