Spark SQL是这样的:
INSERT INTO new
SELECT
~~~
FROM A, B
WHERE
~~~ (complex join)
A和new的模式相同,B有一些过滤模式。 B的大小很小,可以播放。
但它在我当地的测试中显示OOM错误。
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.spark.sql.catalyst.expressions.UnsafeRow.copy(UnsafeRow.java:535)
at org.apache.spark.sql.catalyst.expressions.UnsafeRow.copy(UnsafeRow.java:93)
我尝试了重新分区和一些配置更改(例如spark.shuffle.memoryFraction),但它没有用。
我使用的是Spark 1.6。 提前谢谢。
答案 0 :(得分:0)
一种选择是,尝试增加执行程序内存
--executor-memory 4096m
您也可以尝试调整" spark.memory.fraction"和" spark.memory.storageFraction"如... http://spark.apache.org/docs/1.6.2/tuning.html#memory-management-overview