weixin_37727153 2023-12-13 08:33 采纳率: 0%
浏览 14

将JSON拆解成两列多行

将下面的JSON结果拆解成 2列多行。用hive 或者 spark
求帮帮忙

{
"sa016804":"门店选择",
"ncf76803":"员工选择",
"z9ab4ba3":"12月11日",
"w27b0c03":"12月12日",
"n7b6d522":"12月13日",
"s2becb28":"12月14日",
"fce40896":"12月15日",
"n57 ca4af":"12月16日",
"q34460fe":"12月17日",
"y0ef63e5":"岗位",
"z1320d43":"姓名",
"nb7b 1e49":"手机号"
}

  • 写回答

3条回答 默认 最新

  • 故事不长丨 2023-12-13 09:02
    关注

    在Hive中如果要将JSON格式的数据拆解成2列多行,可以通过使用Lateral View Explode来实现。

    -- 创建临时表并插入JSON数据
    CREATE TABLE temp_table (json_string STRING);
    INSERT INTO temp_table VALUES('{"sa016804":"门店选择","ncf76803":"员工选择","z9ab4ba3":"1211","w27b0c03":"1212","n7b6d522":"1213","s2becb28":"1214","fce40896":"1215","n57 ca4af":"1216","q34460fe":"1217","y0ef63e5":"岗位","z1320d43":"姓名","nb7b 1e49":"手机号"}');
    
    -- 解析JSON数据
    SELECT explode(map_keys(json_data)) as key, explode(map_values(json_data)) as value
    FROM (
        SELECT map(
            split(json_string, '[:,]')[0],
            split(json_string, '[:,]')[1],
            split(json_string, '[:,]')[2],
            split(json_string, '[:,]')[3],
            split(json_string, '[:,]')[4],
            split(json_string, '[:,]')[5],
            split(json_string, '[:,]')[6],
            split(json_string, '[:,]')[7],
            split(json_string, '[:,]')[8],
            split(json_string, '[:,]')[9],
            split(json_string, '[:,]')[10],
            split(json_string, '[:,]')[11]
        ) as json_data
        FROM temp_table
    ) t;
    

    上述代码将JSON数据解析成了两列多行。输出结果为:

    key         value
    ---------------
    sa016804    门店选择
    ncf76803    员工选择
    z9ab4ba3    12月11日
    w27b0c03    12月12日
    n7b6d522    12月13日
    s2becb28    12月14日
    fce40896    12月15日
    n57 ca4af   12月16日
    q34460fe    12月17日
    y0ef63e5    岗位
    z1320d43    姓名
    nb7b 1e49   手机号
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月13日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题