美文网首页
SparkSQL处理复杂json的例子

SparkSQL处理复杂json的例子

作者: 天之見證 | 来源:发表于2022-10-12 15:34 被阅读0次
{
    "颜色标签": {
        "颜色": ["黑色", "白色", "红色", "蓝色", "绿色", "紫色"],
        "尺寸": ["超大", "大"]
    },
    "颜色标签2": {
        "颜色2": ["黑色", "白色", "红色", "蓝色", "绿色", "紫色", "黄色"],
        "尺寸2": ["超大", "大"]
    }
}

问题

使用SparkSQL将上述的数据根据嵌套提取成3列

解答

with base_tb as (
    select '{
       "颜色标签": {
            "颜色": ["黑色", "白色", "红色", "蓝色", "绿色", "紫色"],
            "尺寸": ["超大", "大"]
        },
       "颜色标签2": {
            "颜色2": ["黑色", "白色", "红色", "蓝色", "绿色", "紫色", "黄色"],
            "尺寸2": ["超大", "大"]
        }
    }' as col
)

select key, inner_key, json_tuple(inner_json, inner_key) js
from (
    select key, json_object_keys(inner_json) inner_keys, inner_json
    from (
        select key, json_tuple(col, key) inner_json
        from (
            select json_object_keys(col) keys, col
            from base_tb
        ) as a
        LATERAL view explode(keys) as key
    ) as a
) as a
LATERAL view explode(inner_keys) as inner_key

主要采用Spark 3.1.0新增的json_object_keys函数拿到key值,然后依次提取,最后输出如下:

key inner_key js
颜色标签 颜色 ["黑色", "白色", "红色", "蓝色", "绿色", "紫色"]
颜色标签 尺寸 ["超大", "大"]
颜色标签2 颜色2 ["黑色", "白色", "红色", "蓝色", "绿色", "紫色"]
颜色标签2 尺寸2 ["超大", "大"]

相关文章

  • SparkSQL处理复杂json的例子

    问题 使用SparkSQL将上述的数据根据嵌套提取成3列 解答 主要采用Spark 3.1.0新增的json_ob...

  • SparkSQL(四)

    什么是sparksql SparkCore撰写代码非常复杂,引入SparkSQL处理结构化数据 SparkSQL基...

  • swift JSON转model 使用Codable

    简单数据处理 定义模型名称 json数据定义 数据解析 复杂数据处理 定义json 定义模型 解析数据处理 列表数...

  • 【工作代码】复杂 JSON 值替换处理

    总结下最近的工作遇到的点: 入参复杂 JSON 层层嵌套,Java 怎么优雅的处理。 一、关于 JSON JSON...

  • SparkSql之编程方式

    什么是SparkSql? SparkSql作用主要用于用于处理结构化数据,底层就是将SQL语句转成RDD执行 Sp...

  • SparkSql学习一

    1 简介 SparkSql 可以从各种结构化数据源读取数据(JSON Hive Parquet等)中读取数据。而且...

  • json 解析例子

    这是json解析的一个小例子,望你们好好理解,升上小实训!好好加油包,骚年们! json句子: 依赖 implem...

  • 【学习】杂项

    持续更新中 一、sparksql和python的时序处理 https://www.cnblogs.com/feiy...

  • python处理json数据(复杂的json转化成嵌套字典并处理

    一 什么是jsonjson是一种轻量级的数据交换格式。它基于 [ECMAScript]((w3c制定的js规范)的...

  • 将字符串解析成JSON对象

    文中例子使用JAVA编写 将一段json字符串转化为json对象,常见的方法是使用org.json库 例子 JSO...

网友评论

      本文标题:SparkSQL处理复杂json的例子

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