Я хочу бросить стол улей через sparksql.sparksql drop hive table
В кластере с hadoop 2.6, улей 2.0, искры 1.6 и искры 2.0 установлены. Я попробовал следующий код в оболочке pyspark и исправить отправку задания с обеих версий.
sqlContext.sql('drop table test') //spark 1.6
spark.sql('drop table test') //spark 2.0
Оба код отлично работает в pyspak скорлупе, я могу видеть из улья кли что тест таблица больше не существует.
Однако, если код был в файле python и позже отправлен в кластер с использованием spark-submit, код не вступил в силу.
искра 2,0 даже дала ошибке о
pyspark.sql.utils.AnalysisException: u"Table to drop '`try`' does not exist;"
Я скопировал ульи-site.xml в каталог конфа в искре.
Что было бы правильным способом сбросить таблицу улей через sparksql?
Update:
Я попытался сравнил искровую среду между искровой скорлупой и работой я submiited используя следующий код
spark-submit --master yarn --deploy-mode cluster try_spark_sql.py
В среде с искровой оболочкой, я могу видеть искры. sql.catalogImplementation установлен в улей
В работе, представленной с использованием вышеуказанного кода. Среда не содержит spark.sql.catalogImplementation Я попытался установить его, используя следующий код:
spark = SparkSession.builder.appName("PythonSQL").config("spark.sql.catalogImplementation","hive").
Но это не оказывает никакого влияния на окружающую среду.
Один из способов я нашел, посылающее задание, используя клиента режима вместо кластера режим. Затем таблица улей может быть успешно удалена.
Вопрос: используете ли вы контекст sqlContext в своем сценарии искра-отправки? –
, конечно, я не добавил эту часть кода. Исходный код инициализируется как обычно, и используя sqllContxt.sql, можно успешно прочитать файл .orc. –