标题
1.什么是DataSet
DataSet是分布式的数据集合,Dataset提供了强类型支持,也是在RDD的每行数据加了类型约束。DataSet是在Spark1.6中添加的新的接口。它集中了RDD的优点(强类型和可以用强大lambda函数)以及使用了Spark SQL优化的执行引擎。DataSet可以通过JVM的对象进行构建,可以用函数式的转换(map/flatmap/filter)进行多种操作。
2.创建DataSet
DataSet操作API地址:
http://spark.apache.org/docs/2.2.0/api/scala/index.html#org.apache.spark.sql.Dataset
2.1 通过spark.createDataset通过集合进行创建dataSet
val ds1 = spark.createDataset(1 to 10)
2.2从已经存在的rdd当中构建dataSet
val ds2 = spark.createDataset(sc.textFile("file:///export/servers/person.txt"))
2.3 通过样例类配合创建DataSet
spark-shell中一次输入多行操作
:paste
后Enter进入,退出时进入没有输入的行Ctrl D结束
case class Person(name:String,age:Int)
val personDataList = List(Person("zhangsan",18),Person("lisi",28))
val personDS = personDataList.toDS
personDS.show
2.4 通过DataFrame转化生成
使用as[类型]转换为DataSet
case class Person(name:String,age:Long)
val jsonDF = spark.read.json("file:///export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/examples/src/main/resources/people.json")
val jsonDS = jsonDF.as[Person]
jsonDS.show