我已打开一个AWS EMR集群,并在pyspark3 jupyter笔记本中运行以下代码:
"..
textRdd = sparkDF.select(textColName).rdd.flatMap(lambda x: x)
textRdd.collect().show()
.."
我收到此错误:
An error was encountered:
Invalid status code '400' from http://..../sessions/4/statements/7 with error payload: {"msg":"requirement failed: Session isn't active."}
运行线:
sparkDF.show()
作品!
我还创建了文件的一小部分,所有代码运行正常。
问题是什么?
最佳答案
我遇到了同样的问题,超时的原因是驱动程序内存不足。自从您运行collect()
以来,所有数据都会发送到驱动程序。默认情况下,即使通过1000M
设置了较高的值,通过JupyterHub创建Spark应用程序时,驱动程序内存也是config.json
。您可以通过在jupyter笔记本中执行代码来看到
spark.sparkContext.getConf().get('spark.driver.memory')
1000M
要增加驱动程序内存,只需执行
%%configure -f
{"driverMemory": "6000M"}
这将以增加的驱动程序内存重新启动应用程序。您可能需要为数据使用更高的值。希望能帮助到你。
关于pyspark - session 在AWS EMR集群中不是事件的Pyspark,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58062824/