如何使用pyspark将Spark数据帧保存回Google BigQuery项目?



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

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

df = spark.read 
.format('bigquery') 
.option('table', 'publicdata.samples.shakespeare') 
.load()

一些转换:

df_new = df.select("word")

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

df_new 
.write 
.mode('overwrite') 
.format('bigquery') 
.save('my_project.some_schema.df_new_table')

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

ps:我知道这有效,但这不是我想要的:

df_new 
.write 
.mode('overwrite') 
.format('csv') 
.save('gs://my_bucket/df_new.csv')

谢谢!

下面是带有 Spark 的 BigQuery 连接器的文档

建议这样做:

# Saving the data to BigQuery
word_count.write.format('bigquery') 
.option('table', 'wordcount_dataset.wordcount_output') 
.save()

您将表设置在选项((而不是"save(("中

以下语法将创建/覆盖表

df.write.format('bigquery'(.option('table', ( 'project.db.tablename'((.mode("overwrite"(.save((

有关更多信息,您可以参考以下链接 https://dbmstutorials.com/pyspark/spark-dataframe-write-modes.html

最新更新