Py4JJavaError:调用 z:org.apache.spark.api.python.PythonRDD.collectAndServe 时发生错误。在执行简单的 .map() 时

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

我是 pySpark 的新手,尝试了一个简单的 pySpark 代码,例如读取文件并使用 .map(),但在执行时出现 Py4JJavaError

from pyspark import SparkContext, SparkConf

config = SparkConf().setAppName("Reading file")  # App name can be anything
sc = SparkContext.getOrCreate(conf=config)
rdd = sc.textFile("../files/number_file.txt")

rdd2 = rdd.map(lambda x: x.split(","))
print(rdd2.collect())

文本文件是

1, 2, 3, 4, 5, 6, 7, 8, 9, 10
11, 12, 13, 14, 15, 16, 17, 18, 19, 20
21, 22, 23, 24, 25, 26, 27, 28, 29, 30
31, 32, 33, 34, 35, 36, 37, 38, 39, 40
41, 42, 43, 44, 45, 46, 47, 48, 49, 50

我使用的是python 3.12 JDK 17 火花3.5

pyspark
1个回答
0
投票

有时设置 Spark 可能会出现问题。如果可以的话,请添加整个错误。

您的代码看起来不错,可以在 openjdk17 + Spark3.5.0 + scala2.13 环境中运行。

可以在此处

找到演示代码工作原理的协作笔记本

这是我的设置以及我会做的不同的事情:

我使用的设置:

apt-get install openjdk-17-jdk-headless -qq > /dev/null
!wget -q https://archive.apache.org/dist/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3-scala2.13.tgz
!tar -xf spark-3.5.0-bin-hadoop3-scala2.13.tgz
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-17-openjdk-amd64"
os.environ["SPARK_HOME"] = '/content/spark-3.5.0-bin-hadoop3-scala2.13'
# Install library for finding Spark
!pip install -q findspark
# Import the libary
import findspark
# Initiate findspark
findspark.init()
# Check the location for Spark
findspark.find()

from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("stackoverflow example") \
    .getOrCreate()

sc = spark.sparkContext

我想你可能想在某个时候使用 pyspark 数据框,所以我会这样做:

 numbers_df = spark.read.csv('number_file_orig.txt', sep=',',
                         inferSchema=True, header=False)
 numbers_df.show()

输出应如下所示:

+---+----+----+----+----+----+----+----+----+----+
|_c0| _c1| _c2| _c3| _c4| _c5| _c6| _c7| _c8| _c9|
+---+----+----+----+----+----+----+----+----+----+
|  1| 2.0| 3.0| 4.0| 5.0| 6.0| 7.0| 8.0| 9.0|10.0|
| 11|12.0|13.0|14.0|15.0|16.0|17.0|18.0|19.0|20.0|
| 21|22.0|23.0|24.0|25.0|26.0|27.0|28.0|29.0|30.0|
| 31|32.0|33.0|34.0|35.0|36.0|37.0|38.0|39.0|40.0|
| 41|42.0|43.0|44.0|45.0|46.0|47.0|48.0|49.0|50.0|
+---+----+----+----+----+----+----+----+----+----+
© www.soinside.com 2019 - 2024. All rights reserved.