当前位置: 首页 > news >正文

【自学笔记】Spark基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Apache Spark基础知识点总览
    • 目录
    • 简介
    • 核心组件
    • Spark SQL
    • DataFrame与Dataset API
    • RDD(弹性分布式数据集)
    • Spark Streaming
    • MLlib(机器学习库)
    • GraphX(图处理框架)
    • 部署模式
    • 示例代码
      • 创建SparkContext
      • 创建RDD并执行操作
      • 使用DataFrame API
      • 使用Spark SQL
  • 总结


Apache Spark基础知识点总览

目录

  1. 简介
  2. 核心组件
  3. Spark SQL
  4. DataFrame与Dataset API
  5. [RDD(弹性分布式数据集)](#rdd(弹性分布式数据集))
  6. Spark Streaming
  7. [MLlib(机器学习库)](#mllib(机器学习库))
  8. [GraphX(图处理框架)](#graphx(图处理框架))
  9. 部署模式
  10. 示例代码

简介

Apache Spark是一个开源的分布式计算系统,旨在提供快速、通用的大规模数据处理和分析能力。它构建在Hadoop之上,但提供了比Hadoop MapReduce更丰富的数据处理方式,包括批处理、流处理、交互式查询和机器学习等。

核心组件

  • Driver Program:运行应用程序的主函数,负责创建SparkContext,并与Cluster Manager通信以申请资源。
  • Cluster Manager:在集群上获取资源的外部服务(如YARN、Mesos、Kubernetes或Spark自带的Standalone模式)。
  • Worker Node:运行应用程序代码的数据节点。
  • Executor:在Worker Node上为应用程序启动的进程,负责运行任务,并将结果返回给Driver。

Spark SQL

Spark SQL是Spark的一个模块,用于结构化数据的处理。它提供了一个DataFrame API,允许开发者以类似SQL的方式处理数据。

DataFrame与Dataset API

  • DataFrame:一个分布式数据集合,类似于关系数据库中的表或Python中的pandas DataFrame。
  • Dataset:DataFrame的扩展,提供了类型安全的操作。

RDD(弹性分布式数据集)

RDD是Spark中最基本的数据处理模型,是一个不可变的、分布式的数据集合。RDD允许用户进行低级别的数据操作,提供了丰富的转换(transformation)和动作(action)操作。

Spark Streaming

Spark Streaming是Spark的一个组件,用于处理实时数据流。它允许开发者以类似于批处理的方式处理实时数据,提供了高吞吐量和容错性。

MLlib(机器学习库)

MLlib是Spark的机器学习库,提供了常见的机器学习算法和工具,包括分类、回归、聚类、协同过滤等。

GraphX(图处理框架)

GraphX是Spark的图处理框架,提供了图数据的创建、转换和查询功能,适用于社交网络分析、推荐系统等应用场景。

部署模式

Spark支持多种部署模式,包括:

  • Local Mode:在单机上运行Spark。
  • Standalone Mode:使用Spark自带的集群管理器。
  • YARN:Hadoop的资源管理器。
  • Mesos:一个开源的集群管理器。
  • Kubernetes:容器编排平台。

示例代码

创建SparkContext

from pyspark import SparkContext, SparkConf

conf = SparkConf().setAppName("MyApp").setMaster("local[*]")
sc = SparkContext(conf=conf)

创建RDD并执行操作

data = [1, 2, 3, 4, 5]
rdd = sc.parallelize(data)
result = rdd.map(lambda x: x * 2).collect()
print(result)  # 输出: [2, 4, 6, 8, 10]

使用DataFrame API

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("MyApp").getOrCreate()
df = spark.createDataFrame([(1, "Alice"), (2, "Bob")], ["id", "name"])
df.show()

使用Spark SQL

df.createOrReplaceTempView("people")
result = spark.sql("SELECT name FROM people WHERE id = 1")
result.show()

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Spark基础知识点总览。

相关文章:

  • 解决PowerShell下Git中文乱码问题
  • vmwaretools解压失败|vmware tools distrib cannot mkdir read only file system|bug汇总
  • OpenResty(Lua)+Redis实现动态封禁IP
  • 朴素贝叶斯:文本处理中的分类利器
  • 3. 轴指令(omron 机器自动化控制器)——>MC_ResetFollowingError
  • 计算机网络的分类——按照按拓扑结构分类
  • django定时任务方案比对
  • PCL—voxel点云网格化
  • 软件功能性测试工具有哪些?专业软件测试服务推荐
  • 深入解析嵌入式内核:从架构到实践
  • 2025红明谷writeup
  • 【零基础学python】python基础语法(二)
  • UE4学习笔记 FPS游戏制作15修正可以换枪中可以继续换枪和开火的Bug
  • 大数据Trino面试题及参考答案
  • SQL Server行转列操作及PIVOT运算符
  • react 大屏根据屏幕分辨率缩放
  • Qt 重入和线程安全
  • 【线程安全问题的原因和方法】【java形式】【图片详解】
  • 深入理解 tree 命令行工具:目录结构可视化的利器
  • LeetCode hot 100 每日一题(15)——48.旋转图像
  • 美国政府将暂时恢复部分受影响留学生的合法身份,并将制订新标准
  • 俄联邦安全局:俄军高级官员汽车爆炸案嫌疑人已被捕
  • 广西给出最后期限:6月30日之前主动交代问题可从宽处理
  • 万能险新规落地:保险期限不得低于五年,明确万能险销售“负面清单”
  • 哲学家的生命终章:一场关于存在与消逝的深度对话
  • 我国翻译从业人员达680.8万人,行业总需求仍在上升