Spark SQL可以自动推断JSON数据集的模式,并将其作为数据集[Row]加载。 可以使用数据集[String]或JSON文件上的SparkSession.read.json()完成此转换。
请注意,作为json文件提供的文件不是典型的JSON文件。 每行必须包含一个单独的,自包含的有效JSON对象。 有关更多信息,请参阅JSON Lines文本格式,也称为换行符分隔的JSON。
import spark.implicits._val path = "exampls/xxx.json"val peopleDF = spark.read.json(path)peopleDF.printSchema()peopleDF.createOrReplaceTempView("people")val teenagerNamesDF = spark.sql("SELECT name FROM people WHERE age BETWEEN 13 AND 19")
teenagerNamesDF.show()val otherPeopleDataset = spark.createDataset("""{"name":"Yin","address":{"city":"Columbus","state":"Ohio"}}""" :: Nil)val otherPeople = spark.read.json(otherPeopleDataset)otherPeople.show()