hive输出json字符串

目前没发现有什么方便的函数可以直接使用,只能使用concat来手工拼接。

注意将null的字段值转为空,使用nvl函数

  1. 如果将hql语句写在script.q文件里面如下:

    select concat('{"data_dt":"',a.data_dt,
    '","user":"',NVL(a.`user`, ''),
    '","click":"',NVL(a.click, ''),
    '"}') as value
    from table a;
    
  2. 如果直接使用hive -e参数时,需要将双引号转义

    select concat('{\"data_dt\":\"',a.data_dt,
    '\",\"user\":\"',NVL(a.`user`, ''),
    '\",\"click\":\"',NVL(a.click, ''),
    '\"}') as value
    from table a;
    
posted @ 2018-04-26 17:54  硅谷工具人  阅读(7543)  评论(0编辑  收藏  举报
成功之道,在于每个人生阶段都要有不同的目标,并且通过努力实现自己的目标,毕竟人生不过百年! 所有奋斗的意义在于为个人目标实现和提升家庭幸福,同时能推进社会进步和国家目标! 正如古人讲的正心诚意格物致知,修身齐家治国平天下。