【发布时间】:2023-08-03 18:47:01
【问题描述】:
我正在从 JSON 中提取数据并在 presto 中映射两个数组。当数组中没有重复值但失败并出现错误时,它可以正常工作 - 不允许重复映射键这些值是重复的。我需要这些值并且无法从数组中删除任何值。这种情况有解决方法吗?
样本值:
array1 -- [Rewards,NEW,Rewards,NEW]
array2 -- [losg1,losg2,losg3,losg4]
必须像这样生成地图键/值 [Rewards=>losg1,NEW=>losg2,Rewards=>losg3,NEW=>losg4]
【问题讨论】:
-
由于您想保留重复的映射,您不能将其表示为
map。考虑改为ARRAY(ROW(k, v))。 -
感谢您的回复,但我无法解决此问题。你能用这个例子解释一下吗?需要做些什么不同的事情才能像这样完成映射? 1-> 2,2->3,1->4 选择 MAP(ARRAY[1,2,1],array[2,3,4]);
-
可以像这样返回成对的关联
SELECT ARRAY[ROW('Rewards', 'losg1'), ROW('NEW', 'losg2'), ROW('Rewards', 'losg3')]。 -
不客气。转换为答案,因此可以将问题标记为已回答/已接受。我邀请您加入Trino (formerly Presto SQL) community slack,您可以在不适合 SO 范围的情况下获得帮助。