11.2 加载 JSON
文件
Spark SQL 能够自动推测 JSON
数据集的结构,并将它加载为一个Dataset[Row]
.
可以通过SparkSession.read.json()
去加载一个JSON
文件。 也可以通过SparkSession.read.format("json").load()
来加载.
注意: 这个JSON
文件不是一个传统的JSON
文件,每一行都得是一个完整的JSON
串。
{"name": "lisi", "age" : 20, "friends": ["lisi", "zs"]}
{"name": "zs", "age" : 30, "friends": ["lisi", "zs"]}
{"name": "wangwu", "age" : 15, "friends": ["lisi", "zs"]}
package day05
import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}
object DataSourceDemo {
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession
.builder()
.master("local[*]")
.appName("Test")
.getOrCreate()
import spark.implicits._
val df: DataFrame = spark.read.json("target/classes/user.json")
val ds: Dataset[User] = df.as[User]
ds.foreach(user => println(user.friends(0)))
}
}
case class User(name:String, age: Long, friends: Array[String])