实验三Spark 读取文件系统的数据

Spark 读取文件系统的数据

(1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文
件的行数;
(2)在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,
请先创建),然后,统计出文件的行数;
(3)编写独立应用程序,读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,
请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,
并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。

 

当然,让我们逐步完成每个任务:
(1) 在 spark-shell 中读取 Linux 系统本地文件"/home/hadoop/test.txt",然后统计出文件的行数:
// 启动 spark-shell
$ spark-shell

// 读取本地文件并计算行数
val localFileRDD = sc.textFile("file:///home/hadoop/test.txt")
val lineCount = localFileRDD.count()
println(s"本地文件的行数: $lineCount")

(2) 在 spark-shell 中读取 HDFS 系统文件"/user/hadoop/test.txt",然后,统计出文件的行数:
// 读取 HDFS 文件并计算行数
val hdfsFileRDD = sc.textFile("hdfs:///user/hadoop/test.txt")
val lineCountHDFS = hdfsFileRDD.count()
println(s"HDFS 文件的行数: $lineCountHDFS")

(3) 编写独立应用程序,读取 HDFS 系统文件"/user/hadoop/test.txt",然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。
首先,创建一个Scala应用程序,比如SparkFileReader.scala:
import org.apache.spark.{SparkConf, SparkContext}

object SparkFileReader {
def main(args: Array[String]): Unit = {
// 设置 Spark 配置
val conf = new SparkConf().setAppName("SparkFileReader")
val sc = new SparkContext(conf)

// 读取 HDFS 文件并计算行数
val hdfsFileRDD = sc.textFile("hdfs:///user/hadoop/test.txt")
val lineCountHDFS = hdfsFileRDD.count()

println(s"HDFS 文件的行数: $lineCountHDFS")

// 停止 Spark 上下文
sc.stop()
}
}

然后,使用 sbt 构建项目并创建一个 JAR 文件:
$ sbt package

这将在 target/scala-/ 目录下创建一个 JAR 文件。
最后,使用 spark-submit 提交 JAR 文件到 Spark:
$ spark-submit --class SparkFileReader --master <spark-master-url> target/scala-<version>/sparkfilereader_2.11-<version>.jar

将 <spark-master-url> 替换为 Spark 主节点的 URL。这将在 Spark 集群上执行你的 Spark 应用程序。
注意:确保 Spark 和 Hadoop 已正确配置,并在运行 Spark 应用程序之前在 HDFS 中准备好必要的文件。根据你的环境调整代码和配置。

posted @   STDU_DREAM  阅读(395)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示