SparkSQL DataSet

概述

Spark 最新的数据集,在 DataFrame 的基础上,通过样例类映射数据的结构信息,在字段名称上多加了字段类型等。是强类型的数据集合。

创建

DataSet 一般不会使用直接创建,都是通过 RDD 或者 DataFrame 转换过去。

直接创建

创建 样例类

case class User(id: BigInt,name: String ,age: String)

创建 DataFrame

通过样例类进行映射转换

// 创建 DS
val DS: Dataset[User] = List(User(1, "Mary", "13")).toDS()
DS.show()
---------
+---+----+---+
| id|name|age|
+---+----+---+
|  1|Mary| 13|
+---+----+---+

通过 DataFrame 转换

创建样例类

注意类型的精度范围

case class User(id: BigInt,name: String ,age: String)

转换

val jsonDF: DataFrame = session.read.json("indata/data.json")
// DF 创建 DS ,首先需要 样例类
val DFtoDS: Dataset[User] = jsonDF.as[User]
DFtoDS.show()
-------------
+---+---+----------+
|age| id|      name|
+---+---+----------+
| 18|  1|Bigdataboy|
| 16|  2|       Bob|
| 18|  3|     Black|
+---+---+----------+
发表评论 / Comment

用心评论~