[英]Presto: cast array<struct<key:string,value:array<string>>> into map<string,array<string>>
我有一張像
name string
address string
timezone string
one_key_value array<struct<key:string,value:array<string>>
two_key_value array<struct<key:string,value:array<string>>
並想將其轉換為
name string
address string
timezone string
one_key_value map<string,array<string>>
two_key_value map<string,array<string>>
使用快速。 有lateral view inline
但它在 presto 中並沒有真正起作用。 我怎樣才能做到這一點?
根據提供的信息,您基本上需要兩件事:
map_from_entries(one_key_value)
(文檔: https : map_from_entries(one_key_value)
)我沒有測試過想法,但下面的表達應該會有所幫助:
map( transform(one_key_value, e -> e.key), transform(one_key_value, e -> e.value))
map( transform(two_key_value, e -> e.key), transform(two_key_value, e -> e.value))
map(array, array) → map 返回使用給定鍵/值數組創建的映射。
選擇地圖(數組[1,3],數組[2,4]); -- {1 -> 2, 3 -> 4}
我們可以使用 數組轉換函數從輸入字段( array<struct<key:string,value:array<string>>
)構建鍵和值的array<struct<key:string,value:array<string>>
transform(array, function) → ARRAY 返回一個數組,該數組將函數應用於數組的每個元素
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.