在Spark的早期版本中只有RDD,DataFrame和Dataset都是后续版本中引入的。
一,什么是Dataset
Dataset是在Spark 1.6中引入的新概念。Dataset和RDD类似,是分布式的数据集合,但其中存储的数据可以是typed或untyped。例如下面的json,表达一条IoT数据:
{“device_id”: 198164, “device_name”: “sensor-pad-198164owomcJZ”, “ip”: “80.55.20.25”, “cca2”: “PL”, “cca3”: “POL”, “cn”: “Poland”, “latitude”: 53.080000, “longitude”: 18.620000, “scale”: “Celsius”, “temp”: 21, “humidity”: 65, “battery_level”: 8, “c02_level”: 1408, “lcd”: “red”, “timestamp” :1458081226051}
我们可以在Scala中定义一个类:
case class DeviceIoTData (battery_level: Long, c02_level: Long, cca2: String, cca3: String, cn