【发布时间】:2017-04-23 01:12:26
【问题描述】:
我使用的是 Spark 1.5.0
我正在进行广播连接,因为我的一个数据帧大约 30 GB (large_df),另一个大约 10 MB (small_df)。这是我的代码。
df1 = large_df.join(broadcast(small_df), large_df("col2") === small_df("s_col2")
在此之后,如果我得到 df1 的分区数,我会看到正确的数字 (1000)
df1.rdd.partitions.size() 1000
现在我正在做一个项目,只选择 df1 的某些列
df2 = df1.select("col2", "col4", "col6", "col8")
紧接着,如果我得到 df1 的分区数,我会看到一个较小的数字 (200)。我不确定是这个选择还是其他一些操作以某种方式改变了我的数据帧的分区数。
df2.rdd.partitions.size() 200
如何确保不减少分区数。
【问题讨论】:
标签: apache-spark apache-spark-sql spark-dataframe