首页 > 解决方案 > 使用 spark scala 从 bigquery 读取数据

问题描述

我正在尝试从中读取数据bigquery并打印它们。这是我尝试过的,

// Initialize Spark session
val spark = SparkSession
  .builder
  .master("local")
  .appName("Word Count")
  .config("fs.gs.project.id", "bigquery-public-data")
  .config("google.cloud.auth.service.account.enable", "true")
  .config("fs.gs.auth.service.account.json.keyfile", "<key_file>")
  .getOrCreate()

val macbeth = spark.sql("SELECT * FROM shakespeare WHERE corpus = 'macbeth'").persist()
macbeth.show(100)

但这给了我一个错误如下,

Exception in thread "main" org.apache.spark.sql.AnalysisException: Table or view not found: shakespeare; line 1 pos 14

Caused by: org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'shakespeare' not found in database 'default';

我找不到解决此问题的方法。请帮我从这个数据集中读取数据。

标签: scalaapache-spark-sqlgoogle-bigquery

解决方案


找不到表格或视图:莎士比亚;第 1 行第 14 行

当 BigQuery 查找表时,它会在 projectId 和数据集下查找它。在您的代码中,我看到两个可能的问题:

  1. projectId - 您正在使用 BigQuery 公共项目作为您的 projectId bigquery-public-data,您需要将此变量的值更改为正确的值
  2. datasetId - 在您的查询中,您没有指出存储 shakespeare表的数据集

推荐阅读