如何最大程度地减少Spark数据帧Join上的重排?

Zer*_*001 6 apache-spark

我有两个这样的数据框

  student_rdf = (studentid, name, ...)
  student_result_rdf = (studentid, gpa, ...)
Run Code Online (Sandbox Code Playgroud)

我们需要加入这两个数据框。我们现在正在这样做,

student_rdf.join(student_result_rdf, student_result_rdf["studentid"] == student_rdf["studentid"])
Run Code Online (Sandbox Code Playgroud)

这样很简单。但是它会在工作节点之间创建大量数据改组,但是由于连接键是相似的,并且如果可以使用该键(studentid)对数据帧(理解partitionkey)进行分区,那么根本就不会进行改组。由于相似的数据将驻留在相似的节点中。可能吗?

当我从输入中读取数据帧时,我正在寻找一种基于列对数据进行分区的方法。并且如果Spark可能理解两个数据帧的两个partitionkey是相似的,那又如何呢?

归档时间:

查看次数:

335 次

最近记录:

10 年,9 月 前