我得到一個錯誤當我試圖創建一個DLT管道從一堆第三方app-usage數據。這是錯誤信息:
發現無效的字符(s)的,{}()\ n \ t = '列名的模式。
請升級您的三角洲表讀者版本2版本5和作家
和改變列映射模式名稱的映射。您可以使用以下命令:
ALTER TABLE < table_name >設置TBLPROPERTIES (
“delta.columnMapping。模式”=“名稱”,
“三角洲。minReaderVersion ' = ' 2 ',
“三角洲。minWriterVersion ' = ' 5 ')
所以,我添加了屬性表定義,我仍然得到錯誤。我做錯了什麼?表定義:
創建流表clevertap_analytics_bronze生活
評論“應用程序使用數據從CleverTap”
TBLPROPERTIES (“myCustomPipeline。質量”=“青銅”,
“delta.columnMapping。模式”=“名稱”,
“三角洲。minReaderVersion”=“2”,
“三角洲。minWriterVersion”=“5”
)
作為
選擇
*
從
cloud_files (
——替換以下與S3的確切位置數據的生活
“s3: / / clevertap-analytics /”,
“json”,
——以下更改為“false”如果CSV文件(s)不包括一個頭
地圖(
“頭”,“真正的”,
“cloudFiles。在ferColumnTypes", "true",
“cloudFiles。schemaEvolutionMode”、“救援”,
“rescuedDataColumn”、“rescue_col”
)
);
看來問題是json文件名稱中使用空格鍵,像這樣:
“CT應用版本”:“3.5.6.6”
我檢查,應該是一個有效的json鍵,即使它不是標準。不幸的是,這些文件是由第三方,所以我沒有很多的控製內容。
看起來可能有一個解決方案,如果我使用python自動裝載器,我想我需要做的是這樣的:
選擇([坳(c) .alias (c。替換(“”、“_”)的c dlt.readStream (vw_raw) .columns])
(從https://community.m.eheci.com/s/question/0D58Y000092eaqcSAA/ingest-a-csv-file-with-spaces-in-colu..。
然而,我是一個DB的家夥,不是一個python的家夥。有什麼可用等效為SQL版本的裝載機嗎?