Jit*_*pta 4 cassandra presto trino
我在 presto 中有表,名为(“mappings”)的列将键值对作为字符串
从 hello 中选择映射;
例如:{“foo”:“baar”,“foo1”:“bar1”}
我想将“映射”列转换为 MAP
就像从 hello 中选择 CAST("mappings" as MAP);
这将在 presto 中引发错误。我们如何将其翻译成地图?
Mar*_*rso 10
MAPPresto 中没有 a 的规范字符串表示形式,因此无法将其直接转换为MAP(VARCHAR, VARCHAR). 但是,如果您的字符串包含 JSON 映射,您可以使用该json_parse函数将字符串转换为JSON类型值,并MAP通过cast将其转换为 SQL 。
例子:
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
Run Code Online (Sandbox Code Playgroud)
产生:
_col0 | _col1
-------+-------
baar | bar1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12858 次 |
| 最近记录: |