我为一个需要使用Spark从客户的大查询数据集中的一个数据中提取数据的组织工作,并且考虑到客户和我们自己都使用GCP,因此可以使用Dataproc来实现这一目标。
我已经阅读了Use the BigQuery connector with Spark,该书看起来非常有用,但是它似乎是在假设dataproc集群,bigquery数据集和用于临时BigQuery导出的存储桶都在同一个GCP项目中,而不是我的情况。
我有一个服务帐户密钥文件,该文件可让我连接到bigquery中存储的客户数据并与之交互,如何将服务帐户密钥文件与BigQuery连接器和dataproc结合使用,以便从bigquery中提取数据并在dataproc中与之交互?换句话说,如何修改Use the BigQuery connector with Spark提供的代码以使用我的服务帐户密钥文件?
答案 0 :(得分:3)
要使用服务帐户密钥文件授权,您需要将mapred.bq.auth.service.account.enable
属性设置为true
,并使用mapred.bq.auth.service.account.json.keyfile
属性(cluster将BigQuery连接器指向服务帐户json密钥文件job)。请注意,此属性值是本地路径,这就是为什么您需要事先使用initialization action将密钥文件分发到所有群集节点的原因。
或者,您可以使用here中所述的任何授权方法,但是需要将BigQuery connector的fs.gs
属性前缀替换为mapred.bq
。