1.在 spark-shell 中读取 Linux 系统本地文件 /data/bigfiles/test.txt,然后统计出文件的行数,将统计结果保存到 /root/result.txt 文件中。 2.在 spark-shell 中读取 HDFS 系统文件 /user/hadoop/test.txt,然后统计出文件的行数,将统计结果保存到 /root/result2
时间: 2023-08-16 17:09:37 浏览: 834
统计文件行数
.txt 文件中。
好的,让我逐步为您解答这两个问题。
1. 读取本地文件并统计行数
您可以在 Spark Shell 中使用以下代码来读取本地文件并统计行数:
```
val textFile = sc.textFile("file:///data/bigfiles/test.txt")
val count = textFile.count()
sc.parallelize(Seq(count)).saveAsTextFile("file:///root/result.txt")
```
这里,我们使用 `sc.textFile` 方法读取本地文件,并使用 `count` 方法统计文件的行数。然后,我们将行数保存到一个 `RDD` 中,并使用 `saveAsTextFile` 方法将其保存到本地文件系统中。
2. 读取 HDFS 文件并统计行数
您可以在 Spark Shell 中使用以下代码来读取 HDFS 文件并统计行数:
```
val textFile = sc.textFile("hdfs://localhost:9000/user/hadoop/test.txt")
val count = textFile.count()
sc.parallelize(Seq(count)).saveAsTextFile("file:///root/result2.txt")
```
这里,我们使用 `sc.textFile` 方法读取 HDFS 文件,并使用 `count` 方法统计文件的行数。然后,我们将行数保存到一个 `RDD` 中,并使用 `saveAsTextFile` 方法将其保存到本地文件系统中。
请注意,这里我们将结果保存到本地文件系统中,而不是 HDFS 中。如果您希望将结果保存到 HDFS 中,可以将 `saveAsTextFile` 方法的参数修改为 HDFS 路径。
阅读全文