1

最近,我在使用 pyspark 将数据帧数据写入 BigQuery 时遇到了一个问题。这是:

pyspark.sql.utils.IllegalArgumentException: u'必须通知临时或持久 GCS 存储桶

在研究了这个问题后,我发现要提到临时 GCS 存储桶spark.conf

bucket = "temp_bucket"
spark.conf.set('temporaryGcsBucket', bucket)

我认为在像 Hive 这样的 Biquery 中有一个表文件是没有概念的。

我想了解更多,为什么我们需要 temp-gcs-bucket 将数据写入 bigquery?

我正在寻找这背后的原因,但我不能。

请说清楚。

4

1 回答 1

1

spark-bigquery-connector 与 Apache Spark 一起使用,以在 BigQuery 中读取和写入数据。连接器通过首先将所有数据缓冲到 Cloud Storage 临时表中来将数据写入 BigQuery,然后在一次操作中将所有数据复制到 BigQuery。BigQuery 加载操作成功后,连接器会尝试删除临时文件,并在 Spark 应用程序终止时再次尝试删除这些临时文件。如果作业失败,您可能需要手动删除任何剩余的临时 Cloud Storage 文件。通常,您会在 gs://[bucket]/.spark-bigquery-[jobid]-[UUID] 中找到临时 BigQuery 导出。

有关将数据写入 bigquery 的更多参考,您可以在此处关注。

于 2021-06-15T10:14:05.333 回答