json解析 spark_Spark SQL之读取复杂的json数据

本文介绍了如何使用Spark SQL处理复杂的JSON数据。首先展示了数据样本,接着演示了如何使用`spark.read.json`从本地或HDFS读取JSON文件,并将其转换为Spark临时表。通过`.createOrReplaceTempView`将数据视图化,从而能够执行SQL查询,例如选择`user.name`和`text`字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间:2020-03-30

1、数据准备

{"user": {"name": "Holden", "location": "San Francisco"}, "text": "Nice day out today"}

{"user": {"name": "Matei", "location": "Berkeley"}, "text": "Even nicer here :)"}

2、直接使用spark读取sql文件

spark.read.json可以直接读取json格式的数据,可以是地址或者jsonRDD,然后通过createOrReplaceTempView转换成spark的临时表,可以进行sql操作

读取json文件

//读取json文件,地址可以写成本地、hdfs文件地址等

val people = spark.read.json("student.json")

people.show()

image

转换spark临时表,进行查询处理,复杂层级查询,可以直接用.进行关联

//转换成临时表存储

people.createOrReplaceTempView("tweets")

val results = spark.sql("SELECT user.name, text FROM tweets")

results.show()

image

3、涉及到总代码

import org.apache.spark.sql.SparkSession

object SparkSqlJsonMain {

def main(args: Array[String]):Unit = {

//创建SparkSession

val spark = SparkSession

.builder()

.appName("Spark Sql Read json data")

.master("local")

.getOrCreate()

//读取json文件,地址可以写成本地、hdfs文件地址等

val people = spark.read.json("file:///student.json")

people.show()

//转换成临时表存储

people.createOrReplaceTempView("tweets")

val results = spark.sql("SELECT user.name, text FROM tweets")

results.show()

//3、关闭资源

spark.stop()

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值