lateral view与 explode函数按理说是不应该在数据库里存在的,因为他违背了第一范式(每个属性不可再分)。但是实际的场景,如一些大数据场景还是会存在将一些低频使用但又不能丢失的数据存成json,这种场景下就需要解析json,将里面的数组和多key值展开。
初始化一份数据
# 随意造的一份数据,毫无意义
data = [
{
"id": 1,
"name": "XiaoHua",
"age": 12,
"interests": "game,read,tv",
"interests_socre": {
'game': 8, 'read': 7, 'tv': 8},
"scores": {
"scores": [{
"subject": "math",
"score": 80
}, {
"subject": "language",
"score": 90
}, {
"subject": "sports",
"score": 70
}],
"count": 3
},
"scores_str": '[{"subject": "math", "score": 80}, {"subject": "language", "score": 90}, {"subject": "sports", "score": 70}]'
},
{
"id": 2,
"name": "QiangQiang",
"age": 13,
"interests": "game,read,fishing,pingpong",
"interests_socre": {
'game'

本文介绍了如何在SparkSQL中使用explode和lateral view来处理JSON数据,详细阐述了这两个函数在大数据场景下的应用,包括初始化数据、explode的用法以及lateral view的语法。同时,提到了json_tuple等其他解析JSON的方法,并对比了Hive中的类似操作。
1489

被折叠的 条评论
为什么被折叠?



