MaxCompute支援ARRAY、MAP、STRUCT及JSON四種複雜資料類型,本文介紹JSON類型函數及其功能。
索引
函數 | 功能 |
根據給定的JSON字串和輸出格式資訊,返回ARRAY、MAP或STRUCT類型。 | |
在一個標準JSON字串中,按照指定方式抽取指定的字串。 | |
產生JSON ARRAY。將一個可能為空白的JSON類型對象,轉換為包含這些類型的數組。 | |
判斷一個JSON資料中是否包含指定的 JSON 元素。 | |
查看json_path對應的JSON值是否存在。 | |
支援將JSON數組或JSON對象中的每個元素拆解(展開)成多行記錄輸出。 | |
按照指定的json_path,從JSON格式的字串或JSON類型資料中提取對應的字串或JSON資料。 | |
將JSON資料轉換成STRING類型,預設不自動進行美化。 | |
在JSON檔案指定位置中插入JSON值。 | |
返回指定路徑下的JSON資料的長度。 | |
產生JSON OBJECT,要求key和value成對出現。 | |
將STRING類型轉成JSON類型,非JSON格式轉換為字串會報錯。 | |
美化JSON,增加換行及空格。 | |
替換JSON檔案指定位置的值或新增對應的值。 | |
從JSON對象或JSON數組中移除所有值為 | |
在一個標準的JSON字串中,按照輸入的一組鍵抽取各個鍵指定的字串。 | |
返回JSON資料所屬的資料類型名稱。 | |
去掉JSON資料中的引號。 | |
檢查字串是否為合法的JSON格式。 | |
將指定的複雜類型輸出為JSON字串。 |
適用範圍
SDK版本要求
僅支援Java SDK V0.44.0及以上版本。
僅支援PyODPS V0.11.4.1及以上版本。
表操作限制
暫不支援對一張表新增JSON列。
暫不支援Cluster表。
暫不支援Delta Table類型表。
SQL操作限制
暫不支援對JSON類型的比較操作。
暫不支援對JSON類型進行
ORDER BY、GROUP BY或作為JOIN的key。
資料精度
目前JSON NUMBER的整數部分使用BIGINT類型儲存,當整數部分超出BIGINT範圍時會溢出。
目前JSON NUMBER的小數部分使用DOUBLE類型儲存,當小數部分轉換為DOUBLE時會損失精度。
字元限制:產生JSON類型資料所用的字串裡不支援UNICODE
\u0000。引擎相容性:如果表存在其他引擎讀取情況,比如Hologres等,目前不支援讀取JSON資料類型。
Java UDF和Python UDF暫不支援JSON類型。
JSON資料類型可以被嵌套使用,最多支援不超過20層的嵌套。
開發工具
目前支援的開發套件括odpscmd用戶端,Studio和DataWorks,暫不支援Dataphin等外圍生態。如果需要跟外部系統組合使用,請先確認後再使用。使用odpscmd用戶端時需要關注以下內容:
需要將用戶端升級到V0.46.5及以上版本,否則無法使用
DESC json_table命令且無法通過Tunnel下載JSON類型資料。需要將用戶端安裝路徑下的
conf\odps_config.ini檔案中的參數use_instance_tunnel設定為false,否則查詢會報錯。
相關文檔
JSON資料類型詳情請參見JSON資料類型。