以有效的方式从 BigQuery 读取到 Spark 中?

2024-05-08

使用时BigQuery 连接器 https://cloud.google.com/hadoop/examples/bigquery-connector-spark-example要从 BigQuery 读取数据,我发现它首先将所有数据复制到 Google Cloud Storage。然后将这些数据并行读取到Spark中,但是当读取大表时,复制数据阶段需要很长时间。那么有没有更有效的方法将数据从 BigQuery 读取到 Spark 中呢?

另一个问题:从 BigQuery 读取由 2 个阶段组成(复制到 GCS、从 GCS 并行读取)。复制阶段是否受 Spark 集群大小影响或者需要固定时间?


也许谷歌员工会纠正我,但据我所知,这是唯一的方法。这是因为它在底层还使用了 BigQuery Connector for Hadoop,根据docs https://cloud.google.com/hadoop/bigquery-connector:

用于 Hadoop 的 BigQuery 连接器会在运行 Hadoop 作业之前将数据下载到您的 Google Cloud Storage 存储桶中。

附带说明一下,使用 Dataflow 时也是如此 - 它也首先将 BigQuery 表导出到 GCS,然后并行读取它们。

WRT 无论复制阶段(本质上是 BigQuery 导出作业)是否受到 Spark 集群大小的影响,或者是否是固定时间 - 不会。 BigQuery 导出作业是不确定的,BigQuery 使用自己的资源导出到 GCS,即不是您的 Spark 集群。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以有效的方式从 BigQuery 读取到 Spark 中? 的相关文章

随机推荐