【问题标题】:How can I use dataproc to pull data from bigquery that is not in the same project as my dataproc cluster?如何使用 dataproc 从与我的 dataproc 集群不在同一个项目中的 bigquery 中提取数据?
【发布时间】:2019-04-06 18:14:20
【问题描述】:

我所在的组织需要使用 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提供的代码以使用我的服务帐户密钥文件?

【问题讨论】:

    标签: google-cloud-dataproc


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢伊戈尔,我现在就试一试。
    • 更新了提及mapred.bq.auth.service.account.enable属性的答案。
    • Igor,当我通过 cmd 行 (--gcloud dataproc jobs submit pyspark properties=mapred.bq.auth.service.account.enable=true) 设置 mapred.bq.auth.service.account.enable 时,我在作业输出中收到警告:“警告:忽略非火花配置属性:mapred.bq.auth.service。 account.enable=true”。我是否将此属性设置在错误的位置?
    • Igor,我在stackoverflow.com/questions/53190969/… 发布了一个更新的问题。如果您不介意看一看,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2021-03-10
    • 2020-01-31
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多