java.io.StreamCorruptedException 将 CSV 导入 Spark DataFrame 时

java.io.StreamCorruptedException when importing a CSV to a Spark DataFrame

我是 运行 处于 standalone 模式的 Spark 集群。 Master 和 Worker 节点都可以访问,在 Spark Web 中有日志 UI.

我正在尝试将数据加载到 PySpark 会话中,以便我可以处理 Spark DataFrames。

根据几个示例(其中一个来自 official doc),我尝试使用不同的方法,但都因相同的错误而失败。例如

from pyspark.conf import SparkConf
from pyspark.context import SparkContext
from pyspark.sql import SQLContext

conf = SparkConf().setAppName('NAME').setMaster('spark://HOST:7077')
sc = SparkContext(conf=conf)
spark = SparkSession.builder.getOrCreate()

# a try
df = spark.read.load('/path/to/file.csv', format='csv', sep=',', header=True)

# another try
sql_ctx = SQLContext(sc)
df = sql_ctx.read.csv('/path/to/file.csv', header=True)

# and a few other tries...

每次,我都会得到同样的错误:

Py4JJavaError: An error occurred while calling o81.csv. :

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 3, 192.168.X.X, executor 0):

java.io.StreamCorruptedException: invalid stream header: 0000000B

我正在从 JSON 和 CSV 加载数据(当然适当地调整方法调用),每次都出现相同的错误。

有人知道问题出在哪里吗?

有谁担心,感谢终于解决问题了。

pyspark SparkSession 的版本与 Spark 应用程序版本 (2.4 VS 2.3) 不匹配。

在 2.3 版下重新安装 pyspark 立即解决了问题。 #脸掌