如何使用 pyspark 将 Spark DataFrame 保存回 Google BigQuery 项目?

Tot*_*tor 8 python google-bigquery google-cloud-platform pyspark google-cloud-dataproc

我正在从 BigQuery 加载数据集,经过一些转换后,我想将转换后的 DataFrame 保存回 BigQuery。有办法做到这一点吗?

这就是我加载数据的方式:

df = spark.read \
  .format('bigquery') \
  .option('table', 'publicdata.samples.shakespeare') \
  .load()
Run Code Online (Sandbox Code Playgroud)

一些转变:

 df_new = df.select("word")
Run Code Online (Sandbox Code Playgroud)

这就是我如何尝试将数据作为新表保存到我的项目区域中:

df_new \
.write \
.mode('overwrite') \
.format('bigquery') \
.save('my_project.some_schema.df_new_table')
Run Code Online (Sandbox Code Playgroud)

这可能吗?有没有办法直接保存到BQ?

ps:我知道这有效,但这并不是我正在寻找的:

df_new \
.write \
.mode('overwrite') \
.format('csv') \
.save('gs://my_bucket/df_new.csv')
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 5

以下是BigQuery 连接器与 Spark的文档

推荐的方式是这样的:

# Saving the data to BigQuery
word_count.write.format('bigquery') \
  .option('table', 'wordcount_dataset.wordcount_output') \
  .save()
Run Code Online (Sandbox Code Playgroud)

您在 option() 而不是“save()”中设置表