【发布时间】:2017-11-20 06:28:18
【问题描述】:
我有一个 Spark 数据框,我正在尝试使用以下行将其保存到 Google 存储桶中
df.write.format("com.databricks.spark.csv").save('gs://some-test-bucket-delete-me')
但 Pyspark 引发以下异常
Py4JJavaError: An error occurred while calling o55.save.
: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem not found
我的尝试:
此异常的典型解决方案是确保环境变量HADOOP_CLASSPATH 指向gcs-connector-latest-hadoop2.jar 文件,它确实如此。我尝试过使用 Hadoop 版本 1 和版本 2 jar,以防出现问题。我尝试使用
sc._jsc.hadoopConfiguration().set("spark.driver.extraClassPath", "/home/****/hadoop-2.8.2/share/hadoop/common/lib/gcs-connector-latest-hadoop1.jar")
无济于事。
如果我从 bash 尝试hadoop fs -ls gs://gs://some-test-bucket-delete-me,命令会完美返回,这应该表明 Google Cloud Storage 连接有效,但由于某种原因,我似乎无法在 PySpark 中使用此功能。
可能很重要的事情:
Spark 版本 2.2.0
Python 3.6.1 :: Anaconda 自定义(64 位)
我在本地运行 PySpark
【问题讨论】:
标签: python pyspark google-cloud-storage