【发布时间】:2019-05-01 12:18:44
【问题描述】:
我想知道我们是否可以强制 Spark 在两个数据帧的连接操作期间使用自定义分区键。
例如,让我们考虑
df1: DataFrame - [groupid, other_column_a]
df2: DataFrame - [groupid, other_column_b]
如果我跑步
df_join = df1.join(df2, "groupid")
Spark 会将“groupid”设置为分区键,并在每个分区上执行连接。问题是,如果分区太大,这可能会耗尽机器上的内存。
但是,理论上似乎可以使用(groupid, other_column_a) 作为分区键执行连接(以减小每个分区的大小)。
Spark 可以做到吗?我试着做
df1.repartition("group_id","other_column_a") 前期,但这被连接覆盖(我用 df_join.explain() 检查它)。我在网上找不到任何解释如何执行此操作的资源。
谢谢!
【问题讨论】:
标签: apache-spark join apache-spark-sql