运行Spark程序-在shell中运行

Spark Shell运行程序步骤

  1. 启动Spark Shell
    根据语言选择启动命令:
  • Scala版本(默认):执行spark-shell
  • Python版本:执行pyspark
  1. 数据加载示例
    读取本地文本文件:
scala 复制代码
// Scala版本
val textData = sc.textFile("file:///path/to/file.txt")

// Python版本
text_data = sc.textFile("file:///path/to/file.txt")
  1. 执行数据处理
    实现词频统计(两种语言示例):
scala 复制代码
// Scala版本
val wordCounts = textData
  .flatMap(_.split(" "))
  .map(word => (word, 1))
  .reduceByKey(_ + _)
  
wordCounts.collect().foreach(println)
python 复制代码
# Python版本
word_counts = text_data \
    .flatMap(lambda line: line.split(" ")) \
    .map(lambda word: (word, 1)) \
    .reduceByKey(lambda a,b: a+b)

word_counts.collect()
  1. 结果输出
    保存到HDFS(两种语言通用):
scala 复制代码
wordCounts.saveAsTextFile("hdfs:///output/path")
  1. 退出环境
    输入命令:quitCtrl+D

注意事项

  1. 路径说明
  • 本地文件需加file://前缀
  • 集群文件使用hdfs://协议头
  1. 执行触发

    转换操作(如map/filter)需要执行动作(如collect/count)才会触发计算

  2. 配置调优

    启动时可添加参数:

bash 复制代码
spark-shell --master yarn --executor-memory 4g
  1. 日志控制
    在Shell中调整日志级别:
scala 复制代码
sc.setLogLevel("WARN")

验证示例

在Shell中运行快速验证:

scala 复制代码
// 创建测试RDD
val nums = sc.parallelize(1 to 100)
println(s"数据总量:${nums.count()}") 
相关推荐
睎zyl1 小时前
Spark自定义分区器-基础
大数据·分布式·spark
元6333 小时前
搭建spark-local模式
大数据·spark
炒空心菜菜6 小时前
MapReduce 实现 WordCount
java·开发语言·ide·后端·spark·eclipse·mapreduce
lqlj22339 小时前
Spark SQL 读取 CSV 文件,并将数据写入 MySQL 数据库
数据库·sql·spark
漂流瓶66666613 小时前
运行Spark程序-在shell中运行 --SparkConf 和 SparkContext
大数据·分布式·spark
lqlj223314 小时前
RDD案例数据清洗
大数据·分布式·spark
心仪悦悦16 小时前
RDD的自定义分区器
大数据·分布式·spark
Freedom℡16 小时前
在scala中sparkSQL连接masql并添加新数据
spark
我爱写代码?1 天前
MapReduce架构-打包运行
大数据·spark