这是我正在进行的Spark课程。我提供了最新的jar for spark big query connector for dataproc 1.5。
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笔记本运行上面的代码。
2条答案
按热度按时间nvbavucw1#
我认为spark-21752中的描述是相关的——此时应用程序已经启动,您不能更改它的类路径。请试着和我一起跑
pyspark --jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar
(然后你可以跳过.config()
部分。8nuwlpux2#
如果您回归到dataproc映像1.4并使用连接器jar,那么一切都正常
gs://spark-lib/bigquery/spark-bigquery-latest.jar