如何使用dataproc从与dataproc群集不在同一项目中的bigquery提取数据?

时间:2018-11-02 13:37:36

标签: google-cloud-dataproc

我为一个需要使用Spark从客户的大查询数据集中的一个数据中提取数据的组织工作,并且考虑到客户和我们自己都使用GCP,因此可以使用Dataproc来实现这一目标。

我已经阅读了Use the BigQuery connector with Spark,该书看起来非常有用,但是它似乎是在假设dataproc集群,bigquery数据集和用于临时BigQuery导出的存储桶都在同一个GCP项目中,而不是我的情况。

我有一个服务帐户密钥文件,该文件可让我连接到bigquery中存储的客户数据并与之交互,如何将服务帐户密钥文件与BigQuery连接器和dataproc结合使用,以便从bigquery中提取数据并在dataproc中与之交互?换句话说,如何修改Use the BigQuery connector with Spark提供的代码以使用我的服务帐户密钥文件?

1 个答案:

答案 0 :(得分:3)

要使用服务帐户密钥文件授权,您需要将mapred.bq.auth.service.account.enable属性设置为true,并使用mapred.bq.auth.service.account.json.keyfile属性(cluster将BigQuery连接器指向服务帐户json密钥文件job)。请注意,此属性值是本地路径,这就是为什么您需要事先使用initialization action将密钥文件分发到所有群集节点的原因。

或者,您可以使用here中所述的任何授权方法,但是需要将BigQuery connectorfs.gs属性前缀替换为mapred.bq