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

转换spark临时表,进行查询处理,复杂层级查询,可以直接用.进行关联
//转换成临时表存储
people.createOrReplaceTempView("tweets")
val results = spark.sql("SELECT user.name, text FROM tweets")
results.show()

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()
}
}
网友评论