相关文章推荐
大力的椰子  ·  NBA总决赛- 知乎·  1 年前    · 
着急的跑步鞋  ·  视觉传达设计专业·  1 年前    · 

【presto & hive 对比2】json字符串提取,行转列,位运算

  • 问题1: json字符串提取
--hive
select get_json_object(json, '$.book');
--Presto
select json_extract_scalar(json, '$.book');
--注意这里Presto中json_extract_scalar返回值是一个string类型,其还有一个函数json_extract是直接返回一个json串,所以使用的时候你得自己知道取的到底是一个什么类型的值.
  • 问题2:列转行

有两个字段, user_id, scores(分别是用户的得分)

示例: yn 98,97,95

如果我们想将其转化为 user_id, score(一个分值),则需要用到列转行,结果是

yn 98

yn 97

yn 95

对应的sql写法为

--hive
select student, score from tests lateral view explode(split(scores, ',')) t as score;
--presto