需求:读取json文件,并将结果写入mysql数据库。
1. 读取json文件
格式如下:
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", “age":19}
可以看出第一行数据缺失age。
我们首先定义Person样例类:
case class Person(name:String, age:Long)
读取文件数据:
import spark.implicits._
val df: Dataset[Person] = spark.read.json("/Users/fred/Desktop/data/data_spark/people.json").as[Person]
此处文件地址即为people.json文件存放的地址,替换成自己的即可。
打印出来可以看到df.show():
+----+-------+
| age| name|
|null|Michael|
| 30| Andy|
| 19| Justin|
如果将该结果直接存入mysql数据库,会报错,因为第一行age为空。因此,我们需要将null替换为一个无意义数字,在满足mysql插入语句的同时,也便于日后进行分析。
val df1 = df.na.fill(-1, Seq("age"))
df1.show()
打印结果&#x