同樣的代碼在Linux Ubuntu上使用相同的jar檔案完全正常。我的火花是3.1.2,哈多普是3.2。我已經試過了maven中所有的gcs連接器版本。
val = df.write.format('bigquery') #df 是 spark.dataframe
.mode(模式)
.option(" credentialsFile", "creds.json")
.option('table', table)
.option("temporaryGcsBucket", bucket)
.保存()
為了調整日志級別,使用sc.setLogLevel(newLevel)。對于SparkR,使用setLogLevel(newLevel)。
21/17 07:41:50 WARN FileSystem: 無法加載檔案系統:java.util.ServiceConfigurationError:org.apache.hadoop.fs.FileSystem。提供者 com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem 不能 不實體化。
21/17 07:41:50 WARN FileSystem: java. lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;J)V
21/17 07:41:50 WARN FileSystem: 無法加載檔案系統:java.util.ServiceConfigurationError:org.apache.hadoop.fs.FileSystem。提供者 com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem 不能 不實體化。
21/17 07:41:50 WARN FileSystem: java.lang.NoClassDefFoundError: 無法初始化class com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem
回溯(最近一次呼叫)。
檔案 "c:sparktestmain.py", line 158, in <module>
val = df.write.format('bigquery')
檔案 "c:sparktestvnenvlibsite-packagespysparksql
eadwriter.py", 行 828, in save
self._jwrite.save()
檔案 "c:sparktestvnenvlibsite-packagespy4jjava_gateway.py", line 1304, in __call__
return_value = get_return_value(
檔案 "c:sparktestvnenvlibsite-packagespysparksqlutils.py", line 128, in deco
return f(*a, **kw)
檔案 "c:sparktestvnenvlibsite-packagespy4jprotocol.py", line 326, in get_return_value
raise Py4JJavaError(
py4j.protocol.Py4JJavaError。發生了一個錯誤 同時呼叫o50.save。
: java.lang.NoClassDefFoundError。無法初始化class com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem
uj5u.com熱心網友回復:
我忘了在我的火花配置中添加它們。
spark = SparkSession
.建立者
.appName(appName)
.config(conf=spark_conf)
.config('spark.jars.packages', 'com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.22.0')
.getOrCreate()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/328344.html
標籤:
上一篇:在Spark中聚合行物件
