Dataproc 笔记本无法导入或导出到 BigQuery:找不到类异常
Posted
技术标签:
【中文标题】Dataproc 笔记本无法导入或导出到 BigQuery:找不到类异常【英文标题】:Dataproc notebook cannot import or export to BigQuery : Class Not Found Exception 【发布时间】:2021-02-10 21:57:53 【问题描述】:这是我正在制作的火花会话。我为 Dataproc 1.5 包含 spark 大查询连接器的最新 jar。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("GCS to BigQuery - Dev") \
.config('spark.jars', 'gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar').getOrCreate()
df = spark.read \
.format('bigquery') \
.option('table', 'publicdata.samples.shakespeare') \
.load()
这是一个例外:
Py4JJavaError: An error occurred while calling o228.load. : java.lang.ClassNotFoundException: Failed to find data source: bigquery
编辑 1:我从 UI 而不是 shell 创建了集群。我见过解决方案,当人们在从 shell 创建集群时添加 jar 文件时,这似乎可行。但是我很好奇为什么从 UI 执行它时不起作用。
编辑 2:我正在使用 jupyter notebook 来运行上面的代码。
【问题讨论】:
【参考方案1】:我认为SPARK-21752 中的描述是相关的——此时应用程序已经启动,您无法更改其类路径。请尝试使用pyspark --jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar
运行(然后您可以跳过.config()
部分。
【讨论】:
在创建 spark 会话之前,我在笔记本中运行了!pyspark --jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar
。但后来我收到关于 ZMQError: Address already in use
的错误。
你用的是哪个笔记本?请相应地更新问题
在我的问题中包含一个编辑。我正在使用 jupyter notebook web 界面。【参考方案2】:
一切正常如果您只是退回到 Dataproc 映像 1.4 并使用连接器 jar gs://spark-lib/bigquery/spark-bigquery-latest.jar
【讨论】:
以上是关于Dataproc 笔记本无法导入或导出到 BigQuery:找不到类异常的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark 和 BigQuery 在 Google Dataproc 中使用两个不同的项目 ID
错误 - 使用 Apache Sqoop 和 Dataproc 从 SQL Server 导入 GCS
加载资源失败(找不到文件) Electron js 无法导入或导出
Dataproc spark 作业无法从 bigtable 扫描记录