为什么需要临时 GCS 存储桶将数据帧写入 BigQuery:pyspark

Why Temporary GCS bucket is needed to write a dataframe to BigQuery: pyspark

最近我在使用 pyspark 将数据框数据写入 BigQuery 时遇到问题。在这里:

pyspark.sql.utils.IllegalArgumentException: u'Temporary or persistent GCS bucket must be informed

研究问题后,我发现要提及的临时 GCS 桶 spark.conf

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

我认为在像 Hive 这样的 Biquery 中没有 table 文件的概念。

我想知道更多,为什么我们需要有temp-gcs-bucket来将数据写入bigquery?

我一直在寻找这背后的原因,但找不到。

请说明。

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

中找到临时 BigQuery 导出

有关将数据写入 bigquery 的更多参考,您可以关注 here