我已打开一个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/

10-11 08:03