[英]How to get second last key from JSON in Amazon Athena?
我想從我的 json 中獲取倒數第二個密鑰,我試過了
SELECT json_extract_scalar(json_column, '$[-1]') AS last_key
FROM table_name;
但它給出了以下錯誤
awsathena 錯誤:INVALID_FUNCTION_ARGUMENT:無效的 JSON 路徑:'$[-1]'
當使用鍵名給我正確的結果時,結果
SELECT json_extract_scalar(json_column, '$.status') AS last_key
FROM table_name;
給我正確的 output
json_extract_scalar
具有有限的 json 路徑支持(並且$[-1]
看起來不像是訪問 json 屬性的有效 json 路徑)。 根據 Athena 版本,您可以使用 cast to map 解決方法(類似這樣的內容):
SELECT element_at(m, cardinality(m)) last_key
FROM (SELECT map_values(cast(json_column as map(varchar, json))) AS m
FROM table_name);
另請注意,json 本質上是無序的,因此依賴實際屬性順序可能是一個有問題的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.