【问题标题】:Cannot save Spark dataframe to Google Cloud Storage from PySpark无法将 Spark 数据帧从 PySpark 保存到 Google Cloud Storage
【发布时间】: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,以防出现问题。我尝试使用

在 Jupyter notebook 中明确指向它
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


    【解决方案1】:

    你应该先运行gcloud init

    那就试试df.write.csv('gs://some-test-bucket-delete-me/file_name')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 2021-02-04
      相关资源
      最近更新 更多