我所在的组织需要使用Spark从客户的bigquery数据集中提取数据,考虑到客户和我们都使用GCP,使用Dataproc来实现这一点是有意义的。
我读过Use the BigQuery connector with Spark,它看起来非常有用,但是它似乎假设dataproc集群、bigquery数据集和临时BigQuery导出的存储桶都在同一个GCP项目中-对我来说并非如此。
我有一个服务帐户密钥文件,它允许我连接到存储在bigquery中的客户数据并与之交互,我如何将该服务帐户密钥文件与BigQuery连接器和dataproc结合使用,以便从bigquery中提取数据并在dataproc中与其交互?换句话说,我如何修改Use the BigQuery connector with Spark提供的代码以使用我的服务帐户密钥文件?
发布于 2018-11-02 14:30:30
要使用服务帐户密钥文件授权,您需要将mapred.bq.auth.service.account.enable
属性设置为true
,并使用mapred.bq.auth.service.account.json.keyfile
属性(cluster或job)将BigQuery连接器指向服务帐户json密钥文件。请注意,此属性值是一个本地路径,这就是您需要预先将密钥文件分发到所有集群节点的原因,例如,使用initialization action。
或者,您可以使用here描述的任何授权方法,但需要将fs.gs
属性前缀替换为BigQuery connector的mapred.bq
。
https://stackoverflow.com/questions/53119618
复制相似问题