十六.Spark SQL之读取复杂的json数据

第一步.准备json数据

test.json

{"name":"liguohui","nums":[1,2,3,4,5]}
{"name":"zhangsan","nums":[6,7,8,9,10]}

test2.json

{"name":"Yin","address":{"city":"chinese","state":"China"}}
{"name":"ligh","address":{"city":null,"state":"California"}}

第二步.读取简单json数据

scala> val json = spark.read.format("json").load("file:///root/data/test.json")

通过show显示:
在这里插入图片描述

创建成表格的形式进行显示:

scala> json.createOrReplaceTempView("json_table")
scala> spark.sql("select * from json_table").show

在这里插入图片描述

显示数组中的其中一列:

scala> spark.sql("select name , nums[2] from json_table").show

在这里插入图片描述

只显示数组中的一列数据:

scala> spark.sql("select name , explode(nums) from json_table").show

在这里插入图片描述

第三步.读取复杂的json数据

scala> val json2 = spark.read.format("json").load("file:///root/data/test2.json")
scala> json2.createOrReplaceTempView("json_tables2")

通过sql的形式显示:

scala> spark.sql("select * from json_tables2").show

在这里插入图片描述

显示复杂的数据(通过点的形式):

scala> spark.sql("select address.city,address.state,name from json_tables2").show

在这里插入图片描述

以上就完成了读取复杂json数据的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值