美文网首页
spark sql 生成 json

spark sql 生成 json

作者: shengjk1 | 来源:发表于2022-06-21 19:18 被阅读0次

    背景

    想通过 spark sql 查询 hive 表然后将相应的字段组装成 sql,类似于 json_object ,不过可惜的是 spark 3.1.x 并没有 json_object 函数,不过还好spark sql 有 to_json 函数

    例子:

    SELECT to_json(struct(bis_type,year,douban_rating))
    from tv.test where date=20220620
    limit 10
    
    SELECT to_json(named_struct('bis_type',bis_type,'year',year,'douban_rating',douban_rating))
    from tv.test where date=20220620
    limit 10
    

    结果,可以保留数据原类型。这是最重要的一个点,组装 json,得保留原字段的数据类型

    {"bis_type":"xxx","year":2022,"douban_rating":8.3}
    

    如何生成嵌套式的 json

    SELECT to_json(array(named_struct('ruleType', 'datetime', 'ruleDetail', array(map('columnName', 'a1','function','test'),map('columnName', 'a2','function','test')))));
    

    结果

    [
      {
        "ruleType": "datetime",
        "ruleDetail": [
          {
            "columnName": "a1",
            "function": "test"
          },
          {
            "columnName": "a2",
            "function": "test"
          }
        ]
      }
    ]
    

    相关文章

      网友评论

          本文标题:spark sql 生成 json

          本文链接:https://www.haomeiwen.com/subject/lamevrtx.html