当前位置:首页教程笔记Spark数据介绍

Spark数据介绍

从趋势上看,DataFrame 和 Dataset 更加流行。

示例场景
数据仓库和 BI 工具集成:

1.如果你需要处理存储在数据仓库中的结构化数据,并且希望与 BI 工具集成,那么 DataFrame 和 Dataset 是首选。
机器学习流水线:

2.在构建机器学习流水线时,使用 DataFrame 和 Dataset 可以更好地管理数据流,并且可以方便地与 MLlib 集成。
实时数据处理:

3.尽管 Spark Structured Streaming 主要使用 DataFrame 和 Dataset,但在某些特定的实时数据处理场景中,仍然可能会用到 RDD。

在 Apache Spark 中,RDD (弹性分布式数据集)、DataFrame 和 Dataset 是三种不同的数据抽象,它们各有特点和适用场景。下面分别介绍这三种数据结构的区别:

1. RDD (Resilient Distributed Dataset)

特点:

①不可变性:一旦创建后,RDD 是不可变的。这意味着你不能修改一个已存在的 RDD 的内容。
②容错性:RDD 通过记录数据转换的历史(血缘关系 Lineage)来自动恢复丢失的数据分区。
③懒加载:RDD 上的操作分为转换(Transformation)和动作(Action)。转换操作定义了如何处理数据,但并不会立即执行;动作操作则会触     发整个计算过程。
④弱类型:RDD 只提供有限的编译时类型检查,大部分类型检查是在运行时进行的。
⑤API:RDD 提供了丰富的低级 API,适合复杂的自定义逻辑。

       用途

  • RDD 适用于需要复杂控制流或需要细粒度控制数据处理逻辑的场景。
  • RDD 也适用于需要容错性的批处理作业。

    2. DataFrame
    特点:

    ①表格结构:DataFrame 是一个分布式的行集合,每一行都有固定的模式(Schema)。
    ②强类型:DataFrame 提供了强类型的 API,支持 SQL 查询,并且具有编译时类型检查。
    ③优化执行:DataFrame 操作可以被 Catalyst 优化器优化,以提高执行效率。
    ④API:DataFrame 提供了类似于 SQL 的 API,易于使用,适合结构化数据处理。

    用途

  • Dataset 适用于需要结构化数据处理,同时也需要一定程度的自定义逻辑的情况。
  • Dataset 也适用于需要高性能和类型安全的应用。

    3. Dataset

    特点:

    ①结合了 RDD 和 DataFrame 的优点:Dataset 是一个强类型的分布式数据集,既有 DataFrame 的结构化特性,也有类似 RDD 的 API。
    ②强类型:Dataset 支持编译时类型检查,提高了代码的安全性和可维护性。
    ③优化执行:Dataset 操作也可以被 Catalyst 优化器优化。
    ④API:Dataset 提供了既像 RDD 又像 DataFrame 的 API,可以使用 SQL 语法,也可以使用函数式编程风格。

    用途

  • Dataset 适用于需要结构化数据处理,同时也需要一定程度的自定义逻辑的情况。
  • 总结
    RDD:适合需要高度定制化的数据处理逻辑,对容错性要求高的批处理任务。
    DataFrame:适合处理结构化数据,需要快速开发周期,易于使用 SQL 查询的场景。
    Dataset:结合了 RDD 和 DataFrame 的优点,提供了类型安全和优化执行的能力,适合需要结构化数据处理同时需要一定程度自定义逻辑的情况。

 

温馨提示:

文章标题:Spark数据介绍

文章链接:https://i.mojue88.com/1528.html/

更新时间:2024年09月07日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:admin@mojue88.com我们将第一时间处理!

资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

所有资源仅限于参考和学习,版权归原作者所有,更多请阅读墨觉网络服务协议

版权声明

   站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。并对发布账号进行永久封禁处理。在为用户提供最好的产品同时,保证优秀的服务质量。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。

给TA打赏
共{{data.count}}人
人已打赏
教程笔记

聊天软件不让截图?我偏要!破解它!

2024-9-7 12:46:37

教程笔记

如何刷新dns缓存 刷新dns缓存命令(ipconfig /flushdns)

2024-9-9 7:50:33

0 条回复 A文章作者 M管理员
😊 表情
  • 贴吧
  • 泡泡
  • 黄脸
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索