Таблица данных Delta и Hive Transactional Table
Я видел из двух источников, что сейчас вы не можете каким-либо образом взаимодействовать с транзакционными таблицами HIVE от Spark.
Таблицы транзакций Hive не читаются искрой
Я вижу, Databricks выпустил транзакционную функцию под названием Databricks Delta. Можно ли теперь читать транзакционные таблицы HIVE, используя эту функцию?
1 ответ
Нету. Не Hive Транзакционные таблицы. Вы создаете новый тип таблицы с именем Delta Table из Databricks (Spark table of parquets) и используете метастову Hive для чтения / записи в эти таблицы.
Это своего рода Внешняя таблица, но она больше похожа на данные схемы. Больше искры и паркета.
Решением вашей проблемы может быть чтение файлов кустов и наложение схемы соответствующим образом в записной книжке Databricks, а затем сохранение ее в виде дельта-таблицы databricks. как это: df.write.mode('overwrite').format('delta').save(/mnt/out/put/path)
Вам все равно нужно написать DDL, указывающий на это местоположение. Просто таблица FYI DELTA является транзакционной.
Я не вижу смысла делать упор только на Spark для доступа к Hive ACID.
На самом деле Spark полагается на основной язык, наиболее популярными из которых являются Python и Scala.
Вы можете без проблем использовать Hive ACID из Python, это очень хорошо зарекомендовавшая себя интеграция.
Ваши данные могут находиться в фреймах данных Spark или RDD, но если вы можете передавать их в стандартные структуры данных Python, вы можете взаимодействовать с Hive ACID непосредственно из них.