Spark SQL之读取复杂的json数据

时间: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()

}

}

你可能感兴趣的:(Spark SQL之读取复杂的json数据)