Pyspark 代码显示 DataFrame 时出错:py4j.protocol.Py4JJavaError

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

我是 pyspark 的新手,我只是运行一个简单的代码来显示数据框[df.show()]

from pyspark.sql import *

  spark=SparkSession.builder\
        .appName("Hello Spark")\
        .master("local[2]")\
        .getOrCreate()

def spark_practice():

  date_list = [("Ravi",28),
               ("David",45),
               ("Mani",27)]

  df=spark.createDataFrame(date_list).toDF("Name","Age")
  df.printSchema()
  df.show()

spark_practice()
    

我遇到了以下错误,并且无法弄清楚为什么会这样。

File "C:\Program Files\Hadoop\spark-3.5.1\python\lib\py4j-0.10.9.7-src.zip\py4j\protocol.py", line 326, in get_return_value py4j.protocol.Py4JJavaError: An error occurred while calling o46.showString. : org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0) (Prince-PC executor driver): org.apache.spark.SparkException: Python worker exited unexpectedly (crashed)

我尝试将路径变量 PYSPARK_DRIVER_PYTHON 设置为最新版本的 python,与项目中使用的版本相同。

请帮助我如何解决该错误。

python pyspark pycharm py4j pyspark-transformer
1个回答
0
投票

将 python 从 python==3.12.1 降级到 python==3.11.8 应该可以解决此问题。另外,避免从 pyspark.sql 导入所有内容,您只需要:

from pyspark.sql.session import SparkSession
© www.soinside.com 2019 - 2024. All rights reserved.