Ошибка при загрузке (добавлении) данных в красное смещение с использованием pyspark, возможно, из-за неправильного способа указания файла JAR - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь загрузить (добавить) данные в уже существующую таблицу красных смещений, используя pyspark. Данные, которые я хочу загрузить, являются искровым фреймом данных, который я получил из списка словарей, называемых allusers. Мой Spark находится на моей локальной машине (Windows) в папке C: \ spark. Моя переменная окружения SPARK_HOME установлена ​​на C: \ spark. Я скачал нужный файл jar и поместил его в папку C: \ spark \ jars. Вот мой код:


conf = SparkConf().set("spark.jars", "c:/spark/jars/spark-redshift_2.10-0.5.0.jar")
sc = SparkContext.getOrCreate(conf)
sqlContext = SQLContext(sc)
df = sqlContext.createDataFrame(allusers) 
df.show(n=5)

df.write \
  .format("com.databricks.spark.redshift") \
  .option("url", "jdbc:redshift://servername/database?user=username&password=password") \
  .option("dbtable", "sampleschema.allusers") \
  .option("tempdir", "s3n://key:secret@bucketname/path-to-bucket") \
  .mode("append") \
  .save()

, когда я запускаю код, я получаю следующую ошибку:

Py4JJavaError: Произошла ошибка при вызове o934.save. : java .lang.ClassNotFoundException: Не удалось найти источник данных: com.databricks.spark.redshift. Пожалуйста, найдите пакеты на http://spark.apache.org/third-party-projects.html

Пожалуйста, укажите мне, где я могу ошибаться. Мое предположение - то, как я определяю файл фляги.

...