spark local模式

Spark Local 模式是一种在单台机器上运行 Spark 应用程序的模式,无需搭建分布式集群,适合开发调试、学习以及运行小规模数据处理任务。以下为你详细介绍该模式:

特点

  • 简易性:无需额外配置分布式集群,在单机上就能快速启动和运行 Spark 应用,便于开发者快速验证代码逻辑。
  • 资源受限:由于在单机上运行,其资源(如 CPU、内存)依赖于单机配置,不适合处理大规模数据。
  • 开发调试便利:在开发过程中,可方便地进行代码调试和问题排查。

运行方式

Python 示例

以下是使用 Python 和 PySpark 在 Local 模式下运行 WordCount 程序的示例:

复制代码
from pyspark.sql import SparkSession

# 创建 SparkSession
spark = SparkSession.builder \
    .appName("LocalWordCount") \
    .master("local[*]") \
    .getOrCreate()

# 读取文本文件
lines = spark.read.text("file:///path/to/your/textfile.txt").rdd.map(lambda r: r[0])

# 进行单词计数
counts = lines.flatMap(lambda x: x.split(' ')) \
              .map(lambda x: (x, 1)) \
              .reduceByKey(lambda a, b: a + b)

# 输出结果
output = counts.collect()
for (word, count) in output:
    print("%s: %i" % (word, count))

# 停止 SparkSession
spark.stop()

在上述代码中:

  • master("local[*]") 表示使用本地模式运行,[*] 代表使用所有可用的 CPU 核心。
  • file:///path/to/your/textfile.txt 是本地文件的路径。
Scala 示例

以下是使用 Scala 在 Local 模式下运行 WordCount 程序的示例:

scala

提交作业

复制代码
import org.apache.spark.sql.SparkSession

object LocalWordCount {
  def main(args: Array[String]): Unit = {
    // 创建 SparkSession
    val spark = SparkSession.builder()
      .appName("LocalWordCount")
      .master("local[*]")
      .getOrCreate()

    // 读取文本文件
    val lines = spark.read.textFile("file:///path/to/your/textfile.txt").rdd

    // 进行单词计数
    val counts = lines.flatMap(_.split(" "))
      .map(word => (word, 1))
      .reduceByKey(_ + _)

    // 输出结果
    counts.collect().foreach(println)

    // 停止 SparkSession
    spark.stop()
  }
}    
Python 代码

在终端中使用 spark-submit 提交 Python 代码:

bash

复制代码
spark-submit --master local[*] /path/to/your/wordcount.py
Scala 代码

若使用 Scala 代码,需先将代码打包成 JAR 文件,再使用 spark-submit 提交:

bash

复制代码
spark-submit --master local[*] --class com.example.LocalWordCount
相关推荐
巴拉特好队友39 分钟前
说说es配置项的动态静态之分和集群配置更新API
大数据·elasticsearch·搜索引擎
End9281 小时前
MapReduce中的分区器
大数据·hadoop
玄武后端技术栈1 小时前
RabbitMQ中Exchange交换器的类型
分布式·rabbitmq
小Tomkk1 小时前
怎么在非 hadoop 用户下启动 hadoop
大数据·hadoop·问题
玄武后端技术栈1 小时前
RabbitMQ如何保证消息不丢失?
分布式·rabbitmq·ruby
极小狐1 小时前
极狐GitLab 如何将项目共享给群组?
大数据·数据库·elasticsearch·机器学习·gitlab
Aric_Jones2 小时前
FastDFS,分布式文件存储系统,介绍+配置+工具类
java·数据库·redis·分布式·idea·dfs
结冰架构3 小时前
【AI提示词】AARRR 模型执行者
大数据·人工智能·ai·提示词·思维模型
AcrelGHP3 小时前
光伏“531”政策倒逼下,光储充一体化系统如何破解分布式光伏收益困局?
分布式
SunTecTec3 小时前
SQL Server To Paimon Demo by Flink standalone cluster mode
java·大数据·flink