gpt4 book ai didi

cassandra - 如何在 presto 中将 varchar 转换为 MAP(VARCHAR,VARCHAR)

转载 作者:行者123 更新时间:2023-12-03 18:40:51 53 4
gpt4 key购买 nike

我在 presto 中有表,名为(“mappings”)的列将键值对作为字符串

从 hello 中选择映射;

例如:{“foo”:“baar”,“foo1”:“bar1”}

我想将“映射”列转换为 MAP

就像从 hello 中选择 CAST("mappings"as MAP);

这将在 presto 中引发错误。我们如何将其翻译成 map ?

最佳答案

Presto 中没有 MAP 的规范字符串表示,因此无法将其直接转换为 MAP(VARCHAR, VARCHAR) 。但是,如果您的字符串包含 JSON 映射,您可以使用 json_parse 函数将字符串转换为 JSON 类型的值,并通过 cast 将其转换为 SQL MAP

例子:

WITH
data(c) AS (
VALUES '{"foo": "baar", "foo1": "bar1"}'
),
parsed AS (
SELECT cast(json_parse(c) as map(varchar, varchar)) AS m
FROM data
)
SELECT m['foo'], m['foo1']
FROM parsed

产生:
 _col0 | _col1
-------+-------
baar | bar1

关于cassandra - 如何在 presto 中将 varchar 转换为 MAP(VARCHAR,VARCHAR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279784/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com