Spark_DataSet创建及使用


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
在这里插入图片描述


3.RDD,DataFrame,DataSet互相转化

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值