如何在spark-shell中设置spark.akka.frameSize?

Bri*_*lan 3 apache-spark

对于特定的火花壳会话,我正在尝试

spark-shell -Dspark.akka.frameSize=10000 --executor-memory 4g
Run Code Online (Sandbox Code Playgroud)

在shell中,我得到了这个:

System.getProperty("spark.executor.memory")
res0: String = 4g
System.getProperty("spark.akka.frameSize")
res1: String = null
Run Code Online (Sandbox Code Playgroud)

可能是这个字符串不正确,但是在尝试对我的数据集执行take()时出现frameSize错误.

org.apache.spark.SparkException: Job aborted due to stage failure: Serialized task 6:0 was 12518780 bytes which exceeds spark.akka.frameSize (10485760 bytes). Consider using broadcast variables for large values.
Run Code Online (Sandbox Code Playgroud)

这显示默认10M的frameSize.也许我的语法错了.请帮忙.谢谢!

Jos*_*sen 5

这在Spark的动态加载Spark属性下的配置指南中有记录:

Spark shell和spark-submit工具支持两种动态加载配置的方法.第一个是命令行选项,例如--master,如上所示.spark-submit可以使用--conf标志接受任何Spark属性,但对于在启动Spark应用程序中起作用的属性使用特殊标志.

例如:

./bin/spark-submit --name "My app" --master local[4] --conf spark.akka.frameSize=100 --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar 
Run Code Online (Sandbox Code Playgroud)