从 PySpark 代码到 showdataFrame 的错误:py4j.protocol.Py4JJavaError

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

我正在运行此代码来显示数据框[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()

但是,我收到以下错误:

文件“C:\Program Files\Hadoop\spark-3.5.1\python\lib\py4j-0.10.9.7-src.zip\py4j\protocol.py”,第 326 行,在 get_return_value 中 py4j.protocol.Py4JJavaError:调用 o46.showString 时发生错误。 :org.apache.spark.SparkException:由于阶段失败而中止作业:阶段0.0中的任务0失败1次,最近一次失败:阶段0.0中丢失任务0.0(TID 0)(Prince-PC执行器驱动程序):org.apache .spark.SparkException:Python工作线程意外退出(崩溃)

我尝试将路径变量

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.