【问题标题】:How to parse a specific data from a JSON string in SnowFlake?如何从 SnowFlake 中的 JSON 字符串解析特定数据?
【发布时间】:2020-05-26 23:34:42
【问题描述】:

我对 SnowFlake 很陌生,我正在尝试处理数据集。我感兴趣的专栏有多个反馈以 JSON 格式合并为一个,我只想挖掘相关的键。这是让我们说 Column_X 的快照:

寻找一种方法来解析这些数据,使我有一个新列,如“riskIndicator”和“riskIndicator”,其值为 27、74 作为两个新行。我正在尝试像下面的代码一样进行解析,但这不起作用。看过 javascript/UDF 方法,但这篇文章看起来很复杂。

,get_path(parse_json("riskIndicatorLNInstantID"),'riskCode') as riskIndicator

我将感谢您在这里提供任何形式的帮助/建议。 谢谢。

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    因此,如果您遇到的问题是分解 json,您将需要使用 FLATTEN

    with data as (
        select parse_json('[{"description":"unable to paste json", "riskCode":"27","seq":1},{"description":"typing in json is painful", "riskCode":"74","seq":2}]') as json
    )
    select d.json
        ,f.value:riskCode as riskIndicator
    from data d
     ,lateral flatten(input=>d.json) f;
    

    给予:

    JSON                                       RISKINDICATOR
    [{ "description": "unable to paste j...    "27"
    [{ "description": "unable to paste j...    "74"
    

    【讨论】:

    • 非常感谢@Simeon。这真的很有帮助而且很干净。非常感谢您的快速响应。
    【解决方案2】:

    Lateral flatten 可以帮助提取 JSON 对象的字段,并且是使用相应名称逐个提取它们的非常好的替代方法。但是,有时 JSON 对象可以嵌套,通常提取这些嵌套对象需要知道它们的名称

    文档参考:https://community.snowflake.com/s/article/Dynamically-extract-multi-level-JSON-object-using-lateral-flatten

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多