今天通过学习在hadoop数据库中使用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 中运行命令
创建测试文件
echo -e "Hello Spark\nWelcome to BigData\nThis is a test file\nHadoop and Spark" > /home/hadoop/test.txt
// 启动 spark-shell
spark-shell
// 读取本地文件
val localFile = spark.read.textFile("file:///home/hadoop/test.txt")
// 统计行数
val lineCount = localFile.count()
println(s"本地文件行数: $lineCount")
// 或者使用另一种方式
val rdd = spark.sparkContext.textFile("file:///home/hadoop/test.txt")
println(s"RDD方式统计行数: ${rdd.count()}")
// 在 spark-shell 中读取 HDFS 文件
val hdfsFile = spark.read.textFile("hdfs://localhost:9000/user/hadoop/test.txt")
// 或者直接使用相对路径(如果配置了默认的HDFS)
// val hdfsFile = spark.read.textFile("/user/hadoop/test.txt")
// 统计行数
val hdfsLineCount = hdfsFile.count()
println(s"HDFS文件行数: $hdfsLineCount")
// 查看文件内容
hdfsFile.collect().foreach(println)
浙公网安备 33010602011771号