apache zeppelin 使用 pyspark 读取 csv 失败

Posted

技术标签:

【中文标题】apache zeppelin 使用 pyspark 读取 csv 失败【英文标题】:apache zeppelin fails on reading csv using pyspark 【发布时间】:2016-10-22 17:31:55 【问题描述】:

我在Amazon EMR 上使用Zeppelin-Sandbox 0.5.6Spark 1.6.1。 我正在阅读位于s3csv 文件。 问题是有时我在读取文件时遇到错误。我需要多次重新启动解释器,直到它工作。我的代码没有任何变化。我无法恢复它,也不知道它何时发生。

我的代码如下:

定义依赖关系:

%dep
z.reset()
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven")
z.load("com.databricks:spark-csv_2.10:1.4.0")

使用spark-csv:

%pyspark
import pyspark.sql.functions as func

df = sqlc.read.format("com.databricks.spark.csv").option("header", "true").load("s3://some_location/some_csv.csv")

错误信息:

 Py4JJavaError: An error occurred while calling o61.load. :
 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, ip-172-22-2-187.ec2.internal):
 java.io.InvalidClassException: com.databricks.spark.csv.CsvRelation;
 local class incompatible: stream classdesc serialVersionUID =
 2004612352657595167, local class serialVersionUID =
 6879416841002809418

 ...

 Caused by: java.io.InvalidClassException:
 com.databricks.spark.csv.CsvRelation; local class incompatible

一旦我将csv 读入dataframe,其余代码就可以正常工作了。

有什么建议吗?

谢谢!

【问题讨论】:

【参考方案1】:

你需要像这样执行spark添加spark-csv包

$ pyspark --packages com.databricks:spark-csv_2.10:1.2.0

现在 spark-csv 将在您的类路径中

【讨论】:

以上是关于apache zeppelin 使用 pyspark 读取 csv 失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spark 配置 Apache Zeppelin

apache zeppelin 上的 zeppelin_ipyspark.py 获取 SyntaxError:无效语法

Apache Zeppelin - 断开连接状态

构建 Apache Zeppelin 时出错

在 Zeppelin 上使用 Apache Livy 解释器时,Matplotlib 不绘图

构建 Apache Zeppelin 时构建失败