大数据全系列 教程
1869个小节阅读:467.5k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
读取嵌套的json格式数据
直接正常读取json格式数据,然后某些下是嵌套的格式,直接使用"列.属性"就可以获取对应的值
原数据data/demo/nestJsonFile.json
xxxxxxxxxx
{"name":"tuhao","score":100,"infos":{"age":20,"gender":"man"}}
{"name":"lisi","score":70,"infos":{"age":21,"gender":"femal"}}
{"name":"wangwu","score":80,"infos":{"age":23,"gender":"man"}}
{"name":"maliu","score":50,"infos":{"age":16,"gender":"femal"}}
{"name":"tianqi","score":90,"infos":{"age":19,"gender":"man"}}
解析为:
xxxxxxxxxx
+------+-----+------+---+
| name|score|gender|age|
+------+-----+------+---+
| tuhao| 100| man| 20|
| lisi| 70| femal| 21|
|wangwu| 80| man| 23|
| maliu| 50| femal| 16|
|tianqi| 90| man| 19|
+------+-----+------+---+
代码:
xxxxxxxxxx
package com.itbaizhan.sql.examples
import org.apache.spark.sql.{DataFrame, SparkSession}
object ReadNestJsonFile {
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession.builder()
.master("local[*]")
.appName("ReadNestJsonFile")
.getOrCreate()
spark.sparkContext.setLogLevel("Error")
//1.读取json文件
val df: DataFrame = spark.read.json("data/demo/nestJsonFile.json")
//方式一:
df.createOrReplaceTempView("tb_json")
spark.sql(
"""
|select name,score,infos.age,infos.gender
|from tb_json
|""".stripMargin).show(false)
//方式二
import org.apache.spark.sql.functions.col
df.select(col("name"),
col("score"),
col("infos.age"),
col("infos.gender")
).show(false)
spark.close()
}
}