apache-spark - 以有效的方式从 BigQuery 读取到 Spark?

标签 apache-spark google-bigquery google-cloud-dataproc google-hadoop

使用时 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/

相关文章:

hadoop - 将数据帧写入 Phoenix

python - 如何通过pyspark以gzip格式保存spark RDD

python - 无法 pickle _thread.rlock 对象 Pyspark 向 elasticsearch 发送请求

java - Spark - 在本地主机上执行时急切加载和缓存 RDD

google-bigquery - BigQuery API 超出限制错误

odbc - 如何通过 ODBC 连接对 BigQuery 进行查询?

google-cloud-platform - Dataproc 作业从另一个项目存储桶读取

java - BigQuery Java 大型查询的读取可靠性

hadoop - BigQuery Hadoop 连接器和 Dataproc

apache-spark - 我可以将具有 log4j.appender.file.File 的 dataproc 的 log4j.properties 文件作为 gcs 路径吗?