使用时 BigQuery Connector从 BigQuery 读取数据我发现它首先将所有数据复制到 Google Cloud Storage。然后将这些数据并行读取到Spark中,但是在读取大表时,复制数据阶段需要很长时间。那么有没有更高效的方式从 BigQuery 读取数据到 Spark 中呢?
另一个问题:从由 2 个阶段组成的 BigQuery 读取(复制到 GCS,从 GCS 并行读取)。复制阶段是否受 Spark 集群大小影响或需要固定时间?
最佳答案
也许 Google 员工会纠正我,但 AFAIK 这是唯一的方法。这是因为在幕后它也使用了 BigQuery Connector for Hadoop,这符合 docs :
The BigQuery connector for Hadoop downloads data into your Google Cloud Storage bucket before running a Hadoop job..
作为旁注,使用 Dataflow 时也是如此 - 它也首先将 BigQuery 表导出到 GCS,然后并行读取它们。
WRT 复制阶段(本质上是 BigQuery 导出作业)是否受 Spark 集群大小的影响,或者是否是固定时间 - 否。 BigQuery 导出作业是不确定的,BigQuery 使用自己的资源导出到 GCS,即不是您的 Spark 集群。
关于apache-spark - 以有效的方式从 BigQuery 读取到 Spark?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462141/