以高效的方式从BigQuery读入Spark?

Mah*_*afy 6 google-bigquery apache-spark google-hadoop google-cloud-dataproc

当使用BigQuery Connector从BigQuery读取数据时,我发现它首先将所有数据复制到Google云端存储.然后将这些数据并行读入Spark,但是在读取大表时,复制数据阶段需要很长时间.那么有更有效的方法将数据从BigQuery读入Spark吗?

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

Gra*_*ley 8

也许一个Google员工会纠正我,但AFAIK是唯一的方法.这是因为它还使用了适用于Hadoop的BigQuery Connector,它符合以下文档:

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

作为旁注,使用Dataflow时也是如此 - 它也首先将BigQuery表导出到GCS然后并行读取它们.

WRT复制阶段(实际上是一个BigQuery导出作业)是否受Spark集群大小的影响,或者它是否是固定时间 - 否.BigQuery导出作业是不确定的,BigQuery使用自己的资源导出到GCS,即不是您的Spark集群.


SAN*_*NN3 5

spark-bigquery-connector使用超快的 BigQuery存储API。