spark学习总结
一、Spark概述
Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎
二、核心组件
1. Spark Core 中提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL,Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的
2. Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。
3. Spark Streaming:实现实时流数据处理,能将流数据按时间间隔划分成小批次进行处理。
4.MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。
三、Spark编程模型
RDD(弹性分布式数据集)
特性:
不可变(immutable)
分区(partitioned)
可并行操作
可持久化(persist/cache)
容错性(通过lineage血统恢复)
创建方式:
从集合创建: `sc.parallelize()`
从外部存储系统: `sc.textFile()`
从其他RDD转换
总体而言,Spark编程模型围绕RDD、DataFrame和Dataset展开,开发者可根据具体的数据特点和处理需求灵活选择使用,利用它们进行数据的转换、分析和获取结果等操作,以实现高效的大数据处理任务。
四. 应用场景
1.与人工智能深度融合:进一步优化MLlib,支持更复杂的深度学习框架和算法,推动人工智能技术在大数据处理中的广泛应用,实现更智能的数据分析和决策。例如,在医疗领域可基于Spark和MLlib对大量病历及基因数据进行分析,建立更精准的疾病预测模型。
2.完善云原生架构:随着云计算的普及,Spark将更好地适应云原生环境,提高在公有云、私有云和混合云场景下的部署和运行效率,降低企业的运维成本,使企业能更便捷地在云环境中利用Spark进行大数据处理。
3.提升实时计算性能:在实时计算领域,Spark将不断优化流处理性能,降低延迟,提高吞吐量,满足金融、物联网等对实时性要求极高的行业需求。如在金融领域,可更及时地处理股票交易数据、银行转账记录等实时数据流,快速检测异常交易行为。