• Spark - 第3章 Spark工作集介绍



            Spark库支持各种不同的任务,包括图分析、机器学习、流处理,以及提供与其他计算系统和存储系统进行集成的能力等。

    • 使用spark-submit运行应用程序
    • Dataset:类型安全的结构化数据API
    • 结构化流处理
    • 机器学习和高级分析
    • 弹性分布式数据集(RDD):Spark的低级API
    • SparkR
    • 第三方软件包生态系统

    运行生产应用程序

            Spark简化了开发和构建大数据处理程序的过程,Spark还可以通过内置的命令行工具spark-submit轻松地将测试级别的交互式程序转化为生产级别的应用程序。spark-submit将你的应用程序代码发送到一个集群并在那里执行,应用程序一直运行,直到它(完成任务后)正确退出或遇到错误。
            spark-submit提供了若干控制选项,你可以指定应用程序需要的资源,以及应用程序的运行方式和运行参数。

    Dataset:类型安全的结构化API

            Spark结构化API的类型安全的版本,用于在Java和Scala中编写静态类型的代码。Dataset API在Python和R中不可用,因为这些语言是动态类型的。
            DataFrame是一个分布式的类型为Row的对象集合,它可以存储多种类型的表格数据。Dataset API让用户可以用Java/Scala类定义DataFrame中的每条记录,并将其作为类型对象的集合来操作,类似于Java ArrayList或Scala Seq。
            Dataset类通过内部包含的对象类型进行参数化。在有需要或只要你想要的时候就可以使用它们。当在Dataset上调用collect或take时,它将会收集Dataset中合适类型的对象,而不是DataFrame的Row对象。

    结构化流处理

            结构化流处理是用于数据流处理的高级API,像在批处理模式下一样,使用Spark的结构化API执行结构化流处理,并以流式方式运行它们,使用结构化流处理可以减少延迟并允许增量处理。
            流数据动作与静态数据动作有点不同,因为我们首先要对流数据缓存到某个地方,而不是像对静态数据那样直接调用count函数(对流数据没有任何意义)。流数据将被缓存到一个内存上的数据表里,在每次被触发器触发后更新这个内存缓存。

    机器学习和高级数据分析

            Spark的另一个优势是它使用称为MLlib的机器学习算法内置库支持大规模机器学习。MLlib支持对数据进行预处理、整理、模型训练和大规模预测,甚至可以使用MLlib中训练的模型在结构化流处理中对流数据进行预测。
            Spark准备了许多内置的预处理方法,这些预处理将原始数据转换为合适的数据格式,之后用于实际训练模型中,并进一步进行预测。MLlib中的机器学习算法要求将数据表示为数值形式,而我们当前的数据由多种不同类型表示,包括时间戳、整数和字符串等,因此我们需要将这些数据转换为数值。我们也需要将数据分成训练和测试集。

    低级API

            RDD比DataFrame更低级,因为它向终端用户暴露物理执行特性(如分区)。Spark包含了很多低级原语,以支持通过弹性分布式数据集(RDD)对任意的Java和Python对象进行操作,事实上,Spark中的所有对象都建立在RDD之上。你可能使用RDD来并行化已经存储在驱动器机器内存中的原始数据。 RDD可以在Scala和Python中使用,但是它们并不完全等价,这与DataFrame API(执行特性相同)有所不同,这是由于RDD某些底层实现细节导致的区别。

    SparkR

            SparkR是一个在Spark上运行的R语言工具,它具有与Spark其他支持语言相同的设计准原则。要使用SparkR,只需将SparkR库导入到你的环境中并运行代码。

    Spark的生态系统和工具包

            Spark最棒的部分之一就是开源社区维护的工具包和支持它的生态系统,其中一些工具甚至还会在成熟并广泛使用后直接进入Spark的核心项目。

    小结

            Spark简单、强大的编程模型,使其可以轻松应用于各种问题的处理。

  • 相关阅读:
    CENTOS安装 graylog4.39
    java毕业设计艾灸减肥管理网站Mybatis+系统+数据库+调试部署
    TiKV 内存参数性能调优
    基于STM32F407的FreeRTOS学习笔记(1)——环境搭建
    IOS OpenGL ES GPUImage 图像镜像 GPUImageTransformFilter
    生产环境p0级故障:用户钱付了,订单还是显示未支付,用户把我们投诉了!
    SnowNLP使用自定义语料进行模型训练(情感分析)
    设计模式 | 简单工厂模式
    Spring Security实现基于RBAC的权限表达式动态访问控制
    彻底理解并解决服务器出现大量TIME_WAIT - 第二篇
  • 原文地址:https://blog.csdn.net/weixin_44556968/article/details/124760235