apache-spark - 将 CSV 导入 Spark DataFrame 时出现 java.io.StreamCorruptedException
问题描述
我正在standalone
模式下运行 Spark 集群。Master 和 Worker 节点都可以访问,并在 Spark Web UI 中显示日志。
我正在尝试将数据加载到 PySpark 会话中,以便可以使用 Spark DataFrames。
遵循几个示例(其中一个来自官方文档),我尝试使用不同的方法,都失败并出现相同的错误。例如
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:调用 o81.csv 时出错。:
org.apache.spark.SparkException:作业因阶段失败而中止:阶段 0.0 中的任务 0 失败 4 次,最近一次失败:阶段 0.0 中丢失任务 0.3(TID 3,192.168.XX,执行者 0):
java.io.StreamCorruptedException:无效的流标头:0000000B
我正在从 JSON 和 CSV 加载数据(当然要适当地调整方法调用),每次的错误都是一样的。
有人明白是什么问题吗?
解决方案
对于它可能关心的人,由于此响应,我终于弄清楚了问题。
pyspark
版本SparkSession
与 Spark 应用程序版本不匹配(2.4 VS 2.3)。
在 2.3 版下重新安装pyspark
立即解决了问题。#facepalm
推荐阅读
- azure - 无法从 Docker 容器访问本地运行的 Azure Functions
- r - 拆分、聚合和组合矩阵并在基础 R 中保持相同的结构
- vue.js - 非命名空间模块上的 mapState
- java - 如何用按位操作替换此字符串操作?
- ruby - 如何修复'NameError:未初始化的常量 Mongo::ConnectionFailure
- pandas - 具有重复列类别的 Pandas 数据透视表
- database - 访问查询条件不允许显示所有记录
- python - 如何去除某些瓷砖纹理的黑色
- python - 使用 Behave 进行测试 - 找不到模块
- reactjs - React.Children.only 期望接收单个 React 元素 chil