第一步.准备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数据的操作。