【问题标题】:Spotify spark-bigquery connector issue while using BigQuerySelect method from Dataproc cluster使用 Dataproc 集群中的 BigQuerySelect 方法时出现 Spotify spark-bigquery 连接器问题
【发布时间】:2018-10-17 06:07:36
【问题描述】:

我是 BigQuery GCP 的新手,要访问 BigQuery 数据,我们使用的是 here 提供的 Spotify spark-bigquery 连接器。

我们可以使用sqlContext.bigQueryTable("project_id:dataset.table") 及其工作。

当我们使用sqlContext.bigQuerySelect("SELECT * FROM [project_id:dataset.table]") 时会报错:

The user xyz-compute@developer.gserviceaccount.com does not have permission to query table.

我们已经对 json 文件和位置进行了必要的设置。但不知道它从何处获取此用户帐户详细信息。

请提供有关其原因以及如何在代码中修复它的帮助。

【问题讨论】:

  • 我们通过创建 json 文件然后在 dataproc 集群上设置 export GOOGLE_APPLICATION_CREDENTIALS= 解决了这个问题,因为我们在 dataproc 集群上使用它。但不知道这种 API 工作方式的原因。

标签: google-cloud-platform google-bigquery spotify google-cloud-dataproc


【解决方案1】:

此错误表明您正在使用的服务帐户 (xyz-compute@developer.gserviceaccount.com) 没有足够的IAM permissions。您应该转到您的 IAM 设置并确保它至少具有 BigQuery Data Viewer 权限。

【讨论】:

  • 我们已经按照 API 的指示设置了凭证 json 文件,但现在可以确定它是从哪里获取这个 xyz 帐户的。我们没有提供这样的帐户详细信息,这里 xyz 是一些数字。正如我上面提到的,同样的事情是使用 bigQueryTable 表方法,它正在读取数据,那么为什么 bigQuerySelect 不起作用。
  • 设置 JSON 设置要使用的帐户,但它没有赋予它所需的权限。您应该在 GCP 控制台的“IAM 和管理员”中检查“服务帐户”,并查看此服务帐户是否有足够的权限。您的 bigQueryTable 语句只是一个配置语句,不需要任何特定权限,而 bigQuerySelect 至少需要对您的数据具有读取权限。
  • 嗨,同意 rillia,你离它很近,但问题是从哪里获取这个随机帐户?
  • 如果您启用了 Compute Engine API,则会为您创建一个 Compute Engine 服务帐户,电子邮件地址为 PROJECT_NUMBER-compute@developer.gserviceaccount.com,可能就是那个 (cloud.google.com/iam/docs/service-accounts)
猜你喜欢
  • 2020-01-31
  • 2019-10-22
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
  • 2019-06-25
  • 2018-12-10
相关资源
最近更新 更多