Dataproc 笔记本无法导入或导出到 BigQuery:Class 未找到异常
Dataproc notebook cannot import or export to BigQuery : Class Not Found Exception
这是我正在制造的火花 session。我包含了 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 运行 上面的代码。
我认为 SPARK-21752 中的描述是相关的 - 此时应用程序已经启动,您无法更改其类路径。请尝试 运行 和 pyspark --jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar
(然后你可以跳过 .config()
部分。
一切正常如果您只是回归到 Dataproc 映像 1.4 并使用连接器 jar gs://spark-lib/bigquery/spark-bigquery-latest.jar
这是我正在制造的火花 session。我包含了 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 运行 上面的代码。
我认为 SPARK-21752 中的描述是相关的 - 此时应用程序已经启动,您无法更改其类路径。请尝试 运行 和 pyspark --jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar
(然后你可以跳过 .config()
部分。
一切正常如果您只是回归到 Dataproc 映像 1.4 并使用连接器 jar gs://spark-lib/bigquery/spark-bigquery-latest.jar