Как вывести список всех дельта-таблиц в Databricks Azure?

Я сохранил один фрейм данных в моем дельта-озере, ниже приведена команда:

df2.write.format("delta").mode("overwrite").partitionBy("updated_date").save("/delta/userdata/")

Также я могу загрузить и увидеть дельта-озеро / пользовательские данные:

dfres=spark.read.format("delta").load("/delta/userdata")

но здесь у меня есть одно сомнение, например, когда я перемещаю несколько паркетных файлов из blob в дельта-озеро, создавая фрейм данных, тогда как кто-то другой узнает, какой файл я переместил и как он может работать с этой дельтой, есть ли какая-либо команда для перечисления все фреймы данных в дельте озера в блоках данных?


person raghav    schedule 13.12.2019    source источник
comment
Можете ли вы сделать SHOW TABLES и посмотреть, каким-то образом Databricks отслеживает дельта-таблицы? Они не отслеживаются в хранилище метаданных в версии OSS (Delta Lake 0.5.0), но видели некоторый код, который подразумевает, что он может работать с Databricks.   -  person Jacek Laskowski    schedule 29.12.2019


Ответы (1)


Разбейте проблему на:

  1. Найдите пути ко всем таблицам, которые хотите проверить. Управляемые таблицы в расположении по умолчанию хранятся в spark.conf.get("spark.sql.warehouse.dir") + s"/$tableName". Если у вас есть внешние таблицы, лучше использовать catalog.listTables(), за которым следует catalog.getTableMetadata(ident).location.getPath. Любые другие пути можно использовать напрямую.

  2. Определите, какие пути принадлежат дельта-таблицам, используя DeltaTable.isDeltaTable(path).

Надеюсь это поможет.

person Sim    schedule 21.01.2020
comment
откуда DeltaTable? - person Yu Chen; 17.05.2021
comment
delta.io - person Sim; 19.05.2021