目录
1、DataSets API操作SparkSql
2、多数据集抽象类型对比分析
详情
1、DataSets API操作SparkSql
-
1)开发环境搭建步骤
- 与DataFrames完全相同
-
2 ) DataSets相关操作
-
操作说明
- DataSet集成了RDD和DataFrame的优点,也称为强类型的DataFrame。
- DataSets和DataFrames具有完全相同的成员函数。
- 两者中,每个行的数据类型不同。DataFrame也可以叫Dataset[Row],即DataFrame是Dataset的一种特定形式。而DataSet的每一行是不固定的,需要模式匹配来确定。
-
版本说明
- 在1.6.2版本DataSet为alpha版测试功能,API方面均没有得到丰富和完善。
- 在2.0.0开始DataSet得到正式推广使用,由于其API和DataFrame在成员函数中完全对等,在使用上差异极小,由于是强类型,故仅在数据集case class模式匹配时,有明显差别。
-
2、多数据集抽象类型对比分析
- spark抽象数据集列表
-
RDD
- DataFrame
- DataSet
-
相同点
- 全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利
- 三者都有惰性机制,在进行Transform操作时不会立即执行,在遇到Action操作时会正式提交作业执行。
- 均采用spark的内存运算和优化策略,内存使用和执行效率上均可以得到保障。
- 均有partition的概念,便于分布式并行计算处理,达到分而治之。
- 均有许多共同的函数,如map、filter、sort等。
- 在进行三者的相关操作时候,均必须引入一个相同的包依赖。( 早期称为 import sqlContext.implicits.,最新版本称为import spark.implicits.)
- DF和DS均可以通过模式匹配获取内部的变量类型和值。
- DF和DS产生于SparkSql,天然支持SparkSql。
-
区别点
-
RDD
- 不支持SparkSql操作,均需进行转成DF或是DS才行。
- 类型是安全的,编译时候即可检查出类型错误。
- 机器间通信、IO操作均需要序列化、反序列化对象,性能开销大。
-
DataFrame
- 有scheme的RDD:比RDD增加了数据的描述信息。
- 比RDD的API更丰富,增加了针对结构化数据API。
- 只有一个固定类型的DataSet,即为DataFrame=DataSet[Row]
- 序列化和反序列化时做了结构化优化,减少了不必要的结构化信息的序列化,提高了执行效率。
-
DataSet
- 强类型的DataFrame,与DF有完全相同的成员函数。
- 每行的类型不固定,需要使用模式匹配case class后,获取实际的类信息、字段类型、字段值。
- 访问对象数据时,比DF更加直接简单。
- 在序列化和反序列化时,引入了Encoder机制,达到按需序列化和反序列化,不必像之前整个对象操作了,进一步提高了效率。
-
-
应用场景
-
使用RDD场景
- 数据为非结构化,如流媒体等数据
- 对数据集进行底层的转换、处理、控制
- 不需要列式处理,而是通过常规的对象.属性来使用数据。
- 对DF、DS带来的开发效率、执行效率提升不敏感时
-
使用DF(必须)
- R或是python语言开发者,使用DF
-
使用DS(必须)
- 在编译时就有高度的类型安全,想要有类型的JVM对象,用上Catalyst优化,并得益于Tungsten生成的高效代码
-
使用DF、DS场景
- 需要丰富的语义、高级抽象和特定领域专用的API时
- 处理需要对半结构化数据进行高级处理,如filter、map、aggregation、average、sum、SQL查询、列式访问或使用lambda函数
- 在不同的Spark库之间使用一致和简化的API
-
-
天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造高端职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。
更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://bbs.myhope365.com/forum.php?mod=viewthread&tid=1422&extra=page%3D1
欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
天亮教育官方群318971238,
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251
教育培训官网:http://myhope365.com
项目研发业务尚云科技官网:http://shangyuninfo.com/
官方天亮论坛:http://bbs.myhope365.com/