【Spark开发必备技能】6-4-RDD/Dataset/DataFrame-Dataset常用方法

目录

1、Dataset方法综述

2、Dataset创建

3、Encoder类创建

4、Dataset方法

5、Dataset转RDD


1、Dataset方法综述

    Dataset是从Spark 1.6开始引入的一个新的数据类型,当时还是处于alpha版本;然而在Spark 2.0,它已经变成稳定版了。

    Dataset存储的是强类型的数据(如Dataset),所以,使用DataSet方法,需要Encoder类来指定数据的具体类型。       

    另外,由于DataSet存储的是强类型的数据,在编译时,会做类型正确性校验。         注: DataFrame作为Dataset的一个特例,存储的是无类型的数据(格式是:Dataset),编译时不做类型校验

    Dataset可以使用 DataFrame的方法(如select、group、sql语言查询等)和RDD的方法(如map、filter、reduce等),能较方便的进行数据操作。  

2、Dataset创建

    通常情况下,Dataset是通过DataFrame转换而来的。DataFrame的创建,以及DataFrame转Dataset的方法 详细参考 《DataFrame常见方法》

3、Encoder类创建

    Dataset通过Encoder类序列化处理对象并在网络上传输而不是使用Java serialization或者Kryo方式。

    尽管Encoder和标准序列化方式都是将对象转换为字节,但是Encoder是动态生成代码的,并且允许Spark在不需要反序列化的情况下执行许多操作,比如:过滤,排序,哈希等。 

    #1) 基本类型的  Encoder类创建 

    #2) 自定义类的  Encoder类创建        

    【Spark开发必备技能】6-4-RDD/Dataset/DataFrame-Dataset常用方法_第1张图片

4、Dataset方法

    Dataset可以使用 DataFrame的方法(如select、group、sql语言查询等)和RDD的方法(如map、filter、reduce等),能较方便的进行数据操作。

    注:使用RDD的方法时,不能用lambda表达式,需要用匿名内部类的方法写 

    #1)使用group方法举例

    【Spark开发必备技能】6-4-RDD/Dataset/DataFrame-Dataset常用方法_第2张图片

    #2)使用map方法举例

    【Spark开发必备技能】6-4-RDD/Dataset/DataFrame-Dataset常用方法_第3张图片

5、Dataset转RDD

    调用.toJavaRDD()方法

    

你可能感兴趣的:(【Spark开发必备技能】6-4-RDD/Dataset/DataFrame-Dataset常用方法)