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简单、强大的编程模型,使其可以轻松应用于各种问题的处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值