Дельта-таблица Databricks и транзакционная таблица Hive

Я видел из двух источников, что прямо сейчас вы не можете сколько-нибудь значимо взаимодействовать с транзакционными таблицами HIVE от Spark.

КИСЛОТА Улья

Hive Transactional Таблицы не читаются Spark

Я вижу, что Databricks выпустила транзакционную функцию под названием Databricks Delta. Можно ли теперь читать таблицы транзакций HIVE с помощью этой функции?


person Vishaal Kalwani    schedule 12.12.2018    source источник


Ответы (2)


Неа. Не таблицы транзакций Hive. Вы создаете новый тип таблицы под названием Databricks Delta Table (таблица паркетов Spark) и используете хранилище метаданных Hive для чтения и записи в эти таблицы.

Это своего рода внешняя таблица, но больше похожа на данные схемы. Больше искры и паркета.

Решением вашей проблемы может быть чтение файлов куста и соответствующее наложение схемы в записной книжке Databricks, а затем сохранение ее в виде дельта-таблицы databricks. вот так: df.write.mode('overwrite').format('delta').save(/mnt/out/put/path) Вам все равно нужно написать DDL, указывающий на это местоположение. Просто таблица FYI DELTA является транзакционной.

person Harsha TJ    schedule 13.12.2018
comment
В дополнение к этому теперь есть возможность преобразовать существующий паркет в формат Delta на месте, вот документы: docs.databricks.com/spark/latest/spark-sql/language-manual/ - person J Smith; 25.02.2019

Я не вижу смысла делать упор только на Spark для доступа к Hive ACID.

На самом деле Spark полагается на основной язык, наиболее популярными из которых являются Python и Scala.

Вы можете без проблем использовать Hive ACID из Python, это очень хорошо зарекомендовавшая себя интеграция.

Ваши данные могут находиться в фреймах данных Spark или RDD, но если вы можете передавать их в стандартные структуры данных Python, вы можете взаимодействовать с Hive ACID непосредственно из них.

person peleitor    schedule 19.09.2019