本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用數組創建地圖
映射是由 Athena 中可用的資料類型組成的鍵值組。若要建立映射,請使用 MAP
運算子並傳入兩個陣列:第一個是欄 (金鑰) 名稱,第二個是值。陣列的所有值必須是相同類型。如果任何映射值陣列元素必須是不同類型,您稍後可以轉換它們。
範例
此範例從資料集選取使用者。它使用 MAP
運算子並傳入兩個陣列。第一個陣列包含欄名稱的值,例如 "first"、"last" 和 "age"。第二個陣列包含每個欄的值,例如 "Bob"、"Smith"、"35"。
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user FROM dataset
此查詢會傳回:
+---------------------------------+
| user |
+---------------------------------+
| {last=Smith, first=Bob, age=35} |
+---------------------------------+
您可以選取欄位名稱,後面接著 [key_name]
,以擷取 Map
值,如以下範例所示:
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user['first'] AS first_name FROM dataset
此查詢會傳回:
+------------+
| first_name |
+------------+
| Bob |
+------------+