42-天亮大数据系列教程之Spark多数据集抽象类型对比分析

目录
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/

猜你喜欢

转载自blog.csdn.net/erliang20088/article/details/84448647