【发布时间】:2021-05-01 21:12:42
【问题描述】:
第一季度。在连接之前对数据进行临时(动态)重新分区是否有助于避免改组,或者改组是否会在重新分区时发生并且没有办法逃脱?
第二季度。我应该重新分区/partitionBy/bucketBy 吗?如果我将来根据列日和用户ID加入,正确的方法是什么? (我将结果保存为带有 .write.saveAsTable 的配置单元表)。我想按天分区并按 user_id 存储,但这似乎会创建数千个文件(请参阅Why is Spark saveAsTable with bucketBy creating thousands of files?)
【问题讨论】:
-
@Hanan_Shteingart 对于第一季度,不能保证在加入之前进行重新分区会消除 shuffle 。除非有可以广播的小数据帧,否则肯定会洗牌。
标签: apache-spark partitioning partition-by