Apache Zeppelin使用Pyspark读取CSV失败



我在Amazon EMR上使用 Zeppelin-Sandbox 0.5.6Spark 1.6.1。我正在阅读位于s3上的csv文件。问题是有时我会遇到错误阅读文件的错误。我需要几次重新启动解释器,直到它起作用为止。我的代码中没有任何更改。我无法恢复它,无法分辨它何时发生。

我的代码如下:

定义依赖项:

%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")

错误msg:

 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,其余代码正常。

有建议吗?

谢谢!

您需要执行spark添加spark-csv软件包,例如

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

现在Spark-CSV将在您的classpath中

最新更新