GCP Dataproc耗电量大的BigQuery

时间:2019-01-07 17:37:10

标签: pyspark google-cloud-platform google-bigquery google-cloud-dataproc

我在GCP Google Cloud Platform上还很陌生,所以希望我的问题不会显得那么愚蠢。

舞台:

主要目标是从BigQuery收集少量扩展表并进行少量转换。由于我打算使用Dataproc部署Pyspark脚本的表的大小,理想情况下,我将能够使用sqlContext将少量sql查询应用于DF(从BQ中提取的表)。最后,我可以轻松地将此信息转储到数据存储桶中的文件中。

问题:

  • 我可以在Pyspark脚本中使用import google.datalab.bigquery as bq吗?

  • 此提议的模式是最有效的还是我可以验证其他任何模式?请记住,我需要创建许多时间查询,这就是为什么我虽然使用Spark。

  • 我希望在此example之后,使用pandas和bq以pandas df的形式读取结果查询。以后,我可能会使用Spark中的sc.parallelize将pandas df转换为spark df。这种方法正确吗?

my script

  • 更新:

在与@Tanvee来回交流之后,我们得出结论,当您需要将数据从DataStorage读入Dataproc时,GCP需要一个中间分配步骤。简要地说,您的spark或hadoop脚本可能需要一个临时存储区,用于存储表中的数据,然后将其导入Spark。

参考文献:

Big Query Connector \ Deployment

非常感谢

2 个答案:

答案 0 :(得分:2)

您将需要使用BigQuery connector来产生火花。 GCP文档herehere中有一些示例。它将创建RDD,您可以将其转换为数据帧,然后就可以执行所有典型的转换。希望有帮助。

答案 1 :(得分:0)

您可以直接使用以下选项从spark连接bigquery表。

  1. 您还可以使用spark-bigquery连接器https://github.com/samelamin/spark-bigquery使用spark直接在dataproc上运行查询。

  2. https://github.com/GoogleCloudPlatform/spark-bigquery-connector这是Beta中的新连接器。这是易于使用的bigquery的spark数据源api。

请参考以下链接: Dataproc + BigQuery examples - any available?