Spark SQL到熊猫发行

问题描述 投票:0回答:1

以下代码中出现错误:

txn = spark.sql('从临时视图中选择*'。toPandas()

我收到Py4JavaError:调用o420.collectToPython时发生错误。:org.apache.spark.SparkException:由于阶段失败,作业中止。

请帮助!

python-3.x pyspark pyspark-sql
1个回答
0
投票

您将收到OOM(内存不足)错误,因为当您在数据帧上调用toPandas()时,spark基本上会将整个数据帧带到驱动程序节点。熊猫无法以分布式方式工作,因此它只能在驱动程序节点上工作。您的数据框太大,无法仅保存在驱动程序节点中,因此会引发错误。我对您的建议是使用pyspark.sql API和Dataframe API(均为python)进行转换。如果您不想这样做(即使这是处理大数据的最有效,高效,强大和可扩展的方式),您仍然可以使用Pandas,而无需将整个数据帧带入驱动程序节点。您可以在> spark 2.3中使用Pandas UDFS,这使您能够以分布式方式使用Pandas代码。

熊猫UDF链接:

https://towardsdatascience.com/scalable-python-code-with-pandas-udfs-a-data-science-application-dd515a628896

Pyspark.sql文档:

https://spark.apache.org/docs/latest/api/python/pyspark.sql.html

© www.soinside.com 2019 - 2024. All rights reserved.