Spark 2.4.4 Avro Pyspark Shell 配置
Spark 2.4.4 Avro Pyspark Shell Configuration
我想我正在遵循正确的 documentation 让 pyspark 编写 avro 文件。我是 运行ning Spark 2.4.4 我正在使用 Jupyter lab 运行 pyspark shell。
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-avro_2.12:2.4.4 pyspark-shell'
spark_conf = SparkConf().setMaster("local").setAppName("app")\
.set('spark.jars.packages', 'org.apache.spark:spark-avro_2.12:2.4.4')\
.set('spark.driver.memory', '3g')\
sc = SparkContext(conf=spark_conf)
spark = SparkSession(sc)
...
df.write.format("avro").save('file.avro')
但是我收到以下错误。我不关心与 Avro 的向后兼容性。有任何想法吗?
Py4JJavaError: An error occurred while calling o41.jdbc.
: java.util.ServiceConfigurationError: org.apache.spark.sql.sources.DataSourceRegister: Provider org.apache.spark.sql.avro.AvroFileFormat could not be instantiated
Shaido 的想法是正确的。使用版本 Spark-Avro 2.11 有效。
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-avro_2.11:2.4.3 pyspark-shell'
spark_conf = SparkConf().setMaster("local").setAppName("app")\
.set('spark.jars.packages', 'org.apache.spark:spark-avro_2.11:2.4.3')
sc = SparkContext(conf=spark_conf)
spark = SparkSession(sc)
我想我正在遵循正确的 documentation 让 pyspark 编写 avro 文件。我是 运行ning Spark 2.4.4 我正在使用 Jupyter lab 运行 pyspark shell。
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-avro_2.12:2.4.4 pyspark-shell'
spark_conf = SparkConf().setMaster("local").setAppName("app")\
.set('spark.jars.packages', 'org.apache.spark:spark-avro_2.12:2.4.4')\
.set('spark.driver.memory', '3g')\
sc = SparkContext(conf=spark_conf)
spark = SparkSession(sc)
...
df.write.format("avro").save('file.avro')
但是我收到以下错误。我不关心与 Avro 的向后兼容性。有任何想法吗?
Py4JJavaError: An error occurred while calling o41.jdbc.
: java.util.ServiceConfigurationError: org.apache.spark.sql.sources.DataSourceRegister: Provider org.apache.spark.sql.avro.AvroFileFormat could not be instantiated
Shaido 的想法是正确的。使用版本 Spark-Avro 2.11 有效。
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-avro_2.11:2.4.3 pyspark-shell'
spark_conf = SparkConf().setMaster("local").setAppName("app")\
.set('spark.jars.packages', 'org.apache.spark:spark-avro_2.11:2.4.3')
sc = SparkContext(conf=spark_conf)
spark = SparkSession(sc)