连接五个大型数据帧时出现内存不足错误

时间:2017-09-20 09:25:19

标签: scala apache-spark dataframe out-of-memory full-outer-join

当我加入五个大型数据帧时,我出现内存不足错误。

  

TaskSetManager:10.0版中的丢失任务12.0(TID 186,wn20-sal04s.sentience.local,executor 4):java.lang.OutOfMemoryError:Java堆空间           在org.apache.spark.sql.catalyst.expressions.UnsafeRow.copy(UnsafeRow.java:504)

我的数据框是:A,B,C,D,E,其中它们使用ID列连接。 执行全外连接。以下是他们的尺寸:

A - > 20GB

乙 - > 20GB

C - > 10 GB

D - > 10GB

E - > 10GB

A.join(B, Seq("ID"), "outer")
  .join(C, Seq("ID"), "outer")
  .join(D, Seq("ID"), "outer")
  .join(E, Seq("ID"), "outer")

以下是我的spark submit命令:

  

spark-submit --master yarn --driver-memory 16g --executor-memory 16g --conf spark.yarn.executor.memoryOverhead = 8g --conf spark.yarn.driver.memoryOverhead = 8g --conf spark .default.parallelism = 60 --conf spark.sql.shuffle.partitions = 60 --num-executors 17 --executor-cores 6 --class x x.jar

请问您如何使用spark 2.1(scala)实现如何实现这样的数据帧连接?

0 个答案:

没有答案