#apache-spark #hadoop #vertica
#apache-spark #hadoop #vertica
Вопрос:
я пытаюсь передавать данные в spark и загружать их в vertica, в каждой статье, на которую я ссылаюсь, говорится о том, что hdfs сначала сохраняет данные из DF или RDD, есть ли способ переместить данные без использования Hadoop и любого дополнительного хранилища данных
Комментарии:
1. Какую версию Spark вы используете? И какая версия Vertica?
Ответ №1:
Не с помощью соединителя Vertica для Apache Spark, к сожалению, для этого соединителя требуется, чтобы данные сначала записывались в HDFS.
Вы можете сохранять данные непосредственно в таблицу соединений JDBC из Spark с помощью df.write()
.
import org.apache.spark.sql.{SQLContext, SaveMode}
df.write
.mode(SaveMode.Append)
.format("jdbc")
.option("url", "jdbc:vertica://vertica:5433/database")
.option("dbtable", "schema.table")
.option("user", "dbadmin")
.option("password", "password")
.save()
У меня это сработало при использовании Spark версии 2.2.1. Vertica версии 9.1.
Комментарии:
1. Спасибо, у меня spark 2.3, а Vertica — V9, в настоящее время я использую S3 для хранения данных в файлах, а затем загрузки в vertica, я тоже собираюсь попробовать этот подход, также не могли бы вы помочь мне понять, почему в большинстве статей не рекомендуется загружать их напрямую, а вместо этого использовать HDFS?
2. Честно говоря, я не уверен, почему рекомендуется сначала сохранять в HDFS.