spark3.0教程-SparkSQL:read.json() 读取json文件

说明

SparkSession 的 .read.json("文件路径") 方法,是读取json文件的方法

由于 json 格式,已经包含列名,列值也具备一定的类型,所以读取时可以自动推断出 列类型,加载成 DataFrame

例子

准备数据

在工程根目录下创建 cdz.json 文件,内容如下:

提示:每一行要符合 JSON 格式

{"id":"1","ele_num":100,"time":10,  "start_time":"2020-01-01 09:30:50","end_time":"2020-01-01 09:40:50"}
{"id":"2","ele_num":200,"time":25,  "start_time":"2020-01-11 10:40:50","end_time":"2020-01-11 11:05:50"}
{"id":"3","ele_num":150,"time":12,  "start_time":"2020-01-01 11:20:50","end_time":"2020-01-01 11:32:50"}
{"id":"1","ele_num":300,"time":50,  "start_time":"2020-01-03 14:30:50","end_time":"2020-01-03 15:20:10"}
{"id":"1","ele_num":50, "time": 5,  "start_time":"2020-02-02 12:30:50","end_time":"2020-02-02 12:35:50"}
{"id":"2","ele_num":500,"time":50,  "start_time":"2020-02-02 15:30:30","end_time":"2020-02-02 17:20:30"}
{"id":"3","ele_num":150,"time":12,  "start_time":"2020-02-01 11:20:50","end_time":"2020-02-01 11:32:50"}
{"id":"3","ele_num":150,"time":12,  "start_time":"2020-02-03 11:20:50","end_time":"2020-02-03 11:32:50"}
{"id":"1","ele_num":100,"time":10,  "start_time":"2020-03-01 09:30:50","end_time":"2020-03-01 09:40:50"}
{"id":"1","ele_num":100,"time":10,  "start_time":"2020-03-05 09:30:50","end_time":"2020-03-05 09:40:50"}
{"id":"2","ele_num":500,"time":120, "start_time":"2020-03-12 15:30:30","end_time":"2020-03-12 17:30:30"}
{"id":"2","ele_num":500,"time":120, "start_time":"2020-03-22 15:30:30","end_time":"2020-03-22 17:30:30"}
{"id":"3","ele_num":400,"time":50,  "start_time":"2020-03-02 17:30:20","end_time":"2020-03-02 18:20:20"}
{"id":"4","ele_num":100,"time":5,   "start_time":"2020-04-01 11:20:50","end_time":"2020-04-01 11:25:50"}
{"id":"4","ele_num":50, "time":8,   "start_time":"2020-04-21 11:20:50","end_time":"2020-04-21 11:28:50"}
{"id":"5","ele_num":150,"time":12,  "start_time":"2020-04-11 11:20:50","end_time":"2020-04-11 11:32:50"}
{"id":"6","ele_num":150,"time":20,  "start_time":"2020-04-15 11:20:50","end_time":"2020-04-15 11:40:50"}

主类

package read

import org.apache.spark.SparkConf
import org.apache.spark.sql.{DataFrame, SparkSession}

object Std_read_json {
  def main(args: Array[String]): Unit = {
    val sc = new SparkConf().setMaster("local[*]").setAppName("std")
    val spark = SparkSession.builder().config(sc).getOrCreate()

    val df: DataFrame = spark.read.json("cdz.json") //加载 json文件

    df.printSchema()
    //显示所有数据
//    df.show()
    val res: DataFrame = df.select("id","ele_num")
    res.show()
    spark.close()
  }
}

原文出处:/show_1IX4KKKMDqRX.html