我在使用 Azure Synapse Notebook 时遇到问题。我有一个大的 python 脚本,其中使用 Pandas Dataframe,我可以加载“parquet”文件,但我无法使用 toPandas() 转换为 pandas,因为抛出错误:
'org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow'.
这不是一个巨大的数据,只是700万行和80列。
我已经尝试过:
向集群添加了更多资源但不起作用。
尝试修改缓冲区大小
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("YourAppName") \
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \
.config("spark.kryoserializer.buffer.max", "512m") \
.getOrCreate()
但是它也不起作用。
唯一有效的是减少行,但这不是一个选项,我需要整个记录。
我也需要保留相同的代码(不更改为 pyspark)
我希望有人能知道如何解决它。
谢谢
刚刚解决了我自己的问题。看起来配置不能直接在笔记本中设置,而是在配置会话中设置。
所以基本上必须:管理 -> Apache Spark 配置 -> 新建。
此后,必须添加到使用的 Spark 池中:管理 -> Spark Pool -> 点击三个点 -> Apache Spark 配置 -> 添加它。
终于要发布了