Я новичок в PySpark.Я использую следующий процесс spark-submit
для загрузки таблицы в Hive в кластере.
/usr/hdp/2.5.0.0-1245/spark2/bin/spark-submit --driver-class-path /path/to/driver/sqljdbc4-3.0.jar --jars /path/to/driver/sqljdbc4-3.0.jar --deploy-mode cluster --master yarn /home/meter/myfile.py
Всякий раз, когда я запускаю это, я получаю множество ошибок.Как и
1. pyspark.sql.utils.analysisexception u'path file:/root/spark-warehouse/table_name already exist
2. Couldn't find driver for com.microsoft.sqljdbc # something like this
3. Some other staging related errors
Итог: я не могу создать таблицу Hive, используя приведенный выше код spark-submit
.Мой скрипт на Python выглядит следующим образом:
from pyspark import SparkConf,SparkContext
from pyspark.sql import HiveContext,SQLContext
conf = SparkConf().setAppName("myapp")
sc = SparkContext(conf=conf)
sql_cntx = SQLContext(sc)
df_curr_volt = sql_cntx.read.format("jdbc").options(url="url",dbtable="table").load()
hc = HiveContext(sc)
df_cv_filt.write.format("orc").saveAsTable("df_cv_raw")
Основываясь на поиске в стеке, кажется, что мне нужно изменить определение conf
, приведенное выше.Или я должен добавить Hive
metastore hive-site.xml
в spark-submit
.
Или, может быть, я упускаю что-то, что мне не известно.
Мой вопрос: какой правильный spark-submit
код я должен использовать?Или мне нужно что-то изменить в приведенном выше коде Python, а затем запустить spark-submit
?Или мне использовать spark2-submit
?PS: я использую PySpark 2.0.
Обновление
Я наконец-то обнулил ошибку сейчас.Это после некоторых испытаний после прочтения нескольких других сообщений stackoverflowInfact, я изменил spark-submit
на следующее.
/usr/hdp...bin/spark-submit --driver-class /path/to/sqljdbc4-3.0.jar --jars /path /to/ sqljdbc4-3.0.jar --master yarn /path/to/.py
И опубликовать это, я получаю ошибку следующим образом.
staging error.could not find registered driver com.microsoft.sqlserver.jdbc.SQLServerDriver #similar to this line.
Интересно, что тот же метод работает нормальнокогда scala
используется.Пожалуйста, дайте мне знать, как справиться с этим сейчас.