【发布时间】:2021-03-21 05:27:16
【问题描述】:
我正在尝试将在私有数据中心上运行的 Spark 作业与 BigQuery 连接起来。我已经创建了服务帐户并获得了私有 JSON 密钥,并获得了对我想要查询的数据集的读取权限。但是,当我尝试与 Spark 集成时,我收到了User does not have bigquery.tables.create permission for dataset xxx:yyy.。我们是否需要创建表权限才能使用 BigQuery 从表中读取数据?
以下是在控制台上打印的响应,
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Access Denied: Dataset xxx:yyy: User does not have bigquery.tables.create permission for dataset xxx:yyy.",
"reason" : "accessDenied"
} ],
"message" : "Access Denied: Dataset xxx:yyy: User does not have bigquery.tables.create permission for dataset xxx:yyy.",
"status" : "PERMISSION_DENIED"
}
下面是我尝试访问 BigQuery 的 Spark 代码
object ConnectionTester extends App {
val session = SparkSession.builder()
.appName("big-query-connector")
.config(getConf)
.getOrCreate()
session.read
.format("bigquery")
.option("viewsEnabled", true)
.load("xxx.yyy.table1")
.select("col1")
.show(2)
private def getConf : SparkConf = {
val sparkConf = new SparkConf
sparkConf.setAppName("biq-query-connector")
sparkConf.setMaster("local[*]")
sparkConf.set("parentProject", "my-gcp-project")
sparkConf.set("credentialsFile", "<path to my credentialsFile>")
sparkConf
}
}
【问题讨论】:
标签: apache-spark google-cloud-platform apache-spark-sql google-bigquery