说明
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()
}
}