Укажите имя столбца И inferschema в таблице Delta Live на Databricks
Я играю с функцией дельта-живых таблиц databricks, используя sql api. Это мое заявление на данный момент:
--Create Bronze Landing zone table
CREATE STREAMING LIVE TABLE raw_data
COMMENT "mycomment"
TBLPROPERTIES ("quality" = "bronze")
AS
SELECT * FROM cloud_files('/mnt/path/here','csv',
map(
'cloudFiles.inferColumnTypes','true',
'option.recursiveFileLookup','true',
'header','false',
))
Мои данные, которые читаются, не имеют заголовков, но я хочу, чтобы они определяли тип данных, используя
1 ответ
Примечание. При обновлении схемы дельта-таблицы потоки, читающие из этой таблицы, прекращаются. Если вы хотите, чтобы поток продолжался, вы должны перезапустить его.
Delta Lake может автоматически обновлять схему таблицы как часть транзакции DML (добавляя или перезаписывая) и делая схему совместимой с записываемыми данными.
Delta Lake автоматически проверяет, совместима ли схема записываемого DataFrame со схемой таблицы. Delta Lake использует следующие правила, чтобы определить, совместима ли запись из DataFrame в таблицу:
• Все столбцы DataFrame должны существовать в целевой таблице. Если в DataFrame есть столбцы, отсутствующие в таблице, возникает исключение. Столбцы, присутствующие в таблице, но не во фрейме данных, устанавливаются равными нулю.
• Типы данных столбцов DataFrame должны совпадать с типами данных столбцов в целевой таблице. Если они не совпадают, возникает исключение.
• Имена столбцов DataFrame не могут отличаться только регистром. Это означает, что такие столбцы, как «Foo» и «foo», не могут быть определены в одной и той же таблице. Хотя вы можете использовать Spark в режиме с учетом или без учета регистра (по умолчанию), Parquet учитывает регистр при сохранении и возврате информации о столбцах. Delta Lake сохраняет регистр, но нечувствителен при хранении схемы и имеет это ограничение, чтобы избежать потенциальных ошибок, повреждения или потери данных. Delta Lake поддерживает DDL для явного добавления новых столбцов и возможность автоматического обновления схемы.
Если вы укажете другие параметры, такие как partitionBy, в сочетании с режимом добавления, Delta Lake проверит их соответствие и выдаст ошибку при любом несоответствии. Когда partitionBy отсутствует, добавления автоматически следуют разделению существующих данных.
Перейдите по этой ссылке для получения дополнительной информации