【问题标题】:Error While Writing into a BigQuery table from Dataproc - Spark从 Dataproc 写入 BigQuery 表时出错 - Spark
【发布时间】:2021-12-14 13:51:03
【问题描述】:

我正在尝试将数据从 Dataproc - Spark 插入到 Big Query 表中。我正在使用以下代码:

df.write \
  .format("bigquery") \
  .option("temporaryGcsBucket","bucket/temp") \
  .save("project.datasource.table1")

错误:

pyspark.sql.utils.IllegalArgumentException: 'SaveMode 设置为 ErrorIfExists 并且表 project.datasource.table1 已经存在。您是否想通过将 SaveMode 设置为 Append 来将数据添加到表中?示例:df.write.format.options.mode(SaveMode.Append).save()'

我插入了“.mode(SaveMode.Append)”,但是没有用。

【问题讨论】:

    标签: apache-spark google-cloud-platform pyspark google-bigquery dataproc


    【解决方案1】:

    这样就可以了:

    df.write \
      .format("bigquery") \
      .option("temporaryGcsBucket","bucket/temp") \
      .mode("append") \
      .save("gcp-bankier.sof.table1")
    

    【讨论】:

    • df.write .format("bigquery") .option("temporaryGcsBucket","bucket/temp") .save("project.datasource.table1") .mode("append") 文件“/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py”,第 1257 行,在 call 文件中“/usr/lib/spark/ python/lib/pyspark.zip/pyspark/sql/utils.py",第 79 行,在 deco pyspark.sql.utils.IllegalArgumentException:'SaveMode 设置为 ErrorIfExists 并且表 project.datasource.table1 已经存在。您想通过将 SaveMode 设置为 Append 来将数据添加到表中吗?
    • mode 部分移到 save 之前。 Save 方法还没有看到 mode 部分,所以在意识到 mode = append 之前它会抛出错误。
    • 那行得通。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 2018-10-31
    • 2019-02-17
    • 2018-11-30
    相关资源
    最近更新 更多