Spark 2.4.4 Конфигурация Avro Pyspark Shell - PullRequest
1 голос
/ 16 октября 2019

Мне кажется, я следую правильной документации , чтобы заставить pyspark записывать файлы avro. Я использую Spark 2.4.4. Я использую лабораторию Jupyter для запуска оболочки pyspark.

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

1 Ответ

0 голосов
/ 16 октября 2019

Шайдо имел правильную идею. Использование версии 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)
...