大数据全系列 教程
1869个小节阅读:465.2k
目录
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Spark SQL 能够自动推测JSON数据集的结构,并将它加载为一个DataFrame. 可以通过SparkSession对象spark.read.json()去加载JSON 文件。
注意:Spark读取的JSON文件不是传统的JSON文件,每一行都应该是一个JSON串。格式如下:
创建json数据文件:student.json
xxxxxxxxxx
{"id":1,"name":"令狐冲","age":23}
{"id":2,"name":"岳不群", "age":50}
{"id":3,"name":"林平之"}
演示代码:
xxxxxxxxxx
package com.itbaizhan.sql
import org.apache.spark.SparkConf
import org.apache.spark.sql.{DataFrame, SparkSession}
object SSRWJson {
def main(args: Array[String]): Unit = {
//1.创建配置文件对象
val conf: SparkConf = new SparkConf()
.setMaster("local[*]")
.setAppName("SSRWJson")
//2.创建SparkSession对象
val spark: SparkSession = SparkSession.builder()
.config(conf).getOrCreate()
//4.读取本地json文件,返回DataFrame对象
/*val df: DataFrame = spark.read.format("json")
//设置被读取文件的字符集编码
.option("encoding", "utf-8")
.load("data/sql/student.json")*/
val df: DataFrame = spark.read
.option("encoding", "utf-8")
.json("data/sql/student.json")
//5.输出相关信息
/*df.printSchema()
df.show()*/
//6.创建临时视图
df.createTempView("student")
//7.使用临时视图进行查询
val dataFrame: DataFrame = spark.sql(
"""
|select id,name,age
|from student
|where age between 23 and 50
|""".stripMargin)
dataFrame.show()
//8.写json文件
df.write.mode("overwrite")
.format("json")
.save("data/sqlout/json")
//或者如下方式
df.write.mode("overwrite").json("data/sqlout/json")
//3.关闭spark
spark.stop()
}
}
运算结果:
xxxxxxxxxx
root
|-- age: long (nullable = true)
|-- id: long (nullable = true)
|-- name: string (nullable = true)
+----+---+------+
| age| id| name|
+----+---+------+
| 23| 1|令狐冲|
| 50| 2|岳不群|
|null| 3|林平之|
+----+---+------+
+------+
| name|
+------+
|令狐冲|
|岳不群|
+------+