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



我为一家组织工作,该组织需要使用Spark从我们客户的一个bigquery数据集中提取数据,鉴于客户和我们自己都使用GCP,使用Dataproc来实现这一点是有意义的。

我读过将BigQuery连接器与Spark一起使用,这看起来非常有用,但它似乎假设dataproc集群、BigQuery数据集和用于临时BigQuery导出的存储桶都在同一个GCP项目中,但我的情况并非如此。

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

要使用服务帐户密钥文件授权,您需要将mapred.bq.auth.service.account.enable属性设置为true,并使用mapred.bq.auth.service.account.json.keyfile属性(集群或作业(将BigQuery连接器指向服务帐户json密钥文件。请注意,这个属性值是一个本地路径,这就是为什么您需要预先使用初始化操作将密钥文件分发到所有集群节点的原因。

或者,您可以使用此处描述的任何授权方法,但需要将BigQuery连接器的fs.gs属性前缀替换为mapred.bq

最新更新