Я только получил доступ к искру 2.0; Я использовал искру 1.6.1 до этого момента. Может кто-то, пожалуйста, помогите мне настроить sparkSession, используя pyspark (python)? Я знаю, что примеры scala, доступные в Интернете, похожи (здесь), но я надеялся на прямое прохождение на языке python.
Мой конкретный случай: я загружаю файлы avro из S3 в блокноте zeppelin. Затем строит df и запускает из них различные pyspark и sql-запросы. Все мои старые запросы используют sqlContext. Я знаю, что это плохая практика, но я начал свой ноутбук с помощью
sqlContext = SparkSession.builder.enableHiveSupport().getOrCreate()
.
Я могу читать в avros с помощью
mydata = sqlContext.read.format("com.databricks.spark.avro").load("s3:...
и создавать фреймы данных без проблем. Но как только я начинаю запрашивать таблицы dataframes/temp, я продолжаю получать ошибку "java.lang.NullPointerException". Я думаю, что это свидетельствует о трансляционной ошибке (например, старые запросы, работающие в 1.6.1, но нуждаются в настройке для 2.0). Ошибка возникает независимо от типа запроса. Поэтому я предполагаю
1.) псевдоним sqlContext - плохая идея
и
2.) Мне нужно правильно настроить sparkSession.
Итак, если кто-то может показать мне, как это делается, или, возможно, объяснить несоответствия, которые они знают между разными версиями искры, я бы очень признателен. Пожалуйста, дайте мне знать, если мне нужно уточнить этот вопрос. Прошу прощения, если он запутан.