📜  Spark-简介(1)

📅  最后修改于: 2023-12-03 15:35:02.347000             🧑  作者: Mango

Spark-简介

Apache Spark 是一个快速通用的集群计算系统,旨在进行大规模数据处理。

1. Spark的特点
  • 快速通用: Spark 中的计算比 Hadoop MapReduce 更快。而且,Spark 可以使用与 Hadoop 生态系统的其他组件一起使用。
  • 内存计算: Spark 中的计算可以在内存中进行,因此,处理大型数据集时速度更快。
  • 易于使用: Spark 提供易于使用的 API,使开发人员可以使用 Java,Scala,Python 和 R 进行编程。
  • 支持多种数据源: Spark 可以处理多种数据源,包括其他 Hadoop 数据存储,如 HBase,Cassandra 等,还可以处理 JSON,Parquet,Avro 等格式。
2. Spark 的组件

Spark 由多个组件组成,其中一些是:

  • Spark Core: Spark 的基础,提供了任务调度,内存管理和错误恢复等核心功能。
  • Spark SQL: 用于结构化数据处理的 Spark 模块。
  • Spark Streaming: 用于流数据处理的 Spark 模块。
  • MLlib: Machine Learning library 在 Spark 中的实现。
  • GraphX: 用于图计算的 Spark 模块。
3. Spark 的使用

Spark 可以使用以下方式进行操作:

本地模式

在本地模式下,Spark 在单个系统上运行,并将所有数据存储在本地磁盘上。

// Scala 代码片段
// 创建 SparkSession 对象
import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder().appName("local").master("local[*]").getOrCreate()

// 加载 CSV 文件并输出前 10 行
val df = spark.read.option("header",true).csv("path/to/file.csv")
df.show(10)
集群模式

在集群模式下,Spark 可以使用多个节点运行,并将数据存储在分布式文件系统中,如 HDFS。

// Scala 代码片段
// 创建 SparkConf 对象
import org.apache.spark.{SparkConf, SparkContext}

val conf = new SparkConf().setAppName("cluster").setMaster("spark://hostname:7077")

// 创建 SparkContext 对象
val sc = new SparkContext(conf)

// 加载 CSV 文件并输出前 10 行
val rdd = sc.textFile("hdfs://path/to/file.csv")
rdd.take(10)
总结

Spark 是一种用于大规模数据处理的快速通用系统,具有高速、内存计算、易用性和多种数据源等特点。Spark 由多个组件组成,包括 Spark Core、Spark SQL、Spark Streaming、MLlib 和 GraphX 等。Spark 可以在本地或集群模式下运行并处理数据,提供了易用、高效的 API。