Как записать данные в таблицу Hive?

Я использую Спарк 2.0.2.

Изучая концепцию записи набора данных в таблицу Hive, я понял, что мы делаем это двумя способами:

  1. используя sparkSession.sql("ваш запрос sql")
  2. dataframe.write.mode(SaveMode."тип режима").insertInto("tableName")

Может ли кто-нибудь сказать мне, какой предпочтительный способ загрузки таблицы Hive с помощью Spark?


person Metadata    schedule 09.08.2017    source источник
comment
зависит от разработчиков. Я обычно использую 1-й.   -  person Sandeep Singh    schedule 09.08.2017


Ответы (2)


В общем, я предпочитаю 2. Во-первых, потому что для нескольких строк вы не можете построить такой длинный sql, а во-вторых, потому что это снижает вероятность ошибок или других проблем, таких как атаки SQL-инъекций.

Точно так же, как и для JDBC, я максимально использую PreparedStatements.

person Gonzalo Herreros    schedule 10.08.2017

Подумайте таким образом, нам нужно получать обновления на ежедневной основе в улье.

Этого можно достичь двумя способами

  1. Обработать все данные улья
  2. Обрабатывать только затронутые разделы.

Для первого варианта sql работает как гем, но имейте в виду, что данных должно быть меньше, чтобы обработать все данные.

Второй вариант работает хорошо. Если вы хотите обработать только созданный раздел. Используйте data.overwite.partitionby.path Вы должны написать логику таким образом, чтобы она обрабатывала только задействованные разделы. Эта логика будет применяться к таблицам, в которых данные представлены в миллионах T миллиардов записей.

person loneStar    schedule 13.08.2017