开始任务前,请先打开右侧命令行窗口,执行如下命令创建数据环境: bash /data/workspace/myshixun/env.sh 1.在 spark-shell 中读取 Linux 系统本地文件 /data/bigfiles/test.txt,然后统计出文件的行数,将统计结果保存到 /root/result.txt 文件中。 2.在 spark-shell 中读取 HDFS 系统文件 /user/hadoop/test.txt,然后统计出文件的行数,将统计结果保存到 /root/result2.txt 文件中。 HDFS 通信端口:9000
时间: 2023-08-16 09:06:32 浏览: 156
Shell脚本bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录
好的,我会执行您的要求。下面是您可以在Spark Shell中使用的代码:
```
// 1. 读取本地文件,统计行数并保存结果到本地文件系统
val textFile = sc.textFile("file:///data/bigfiles/test.txt")
val count = textFile.count()
val result = sc.parallelize(Seq(count))
result.saveAsTextFile("file:///root/result.txt")
// 2. 读取HDFS文件,统计行数并保存结果到本地文件系统
val textFile2 = sc.textFile("hdfs://localhost:9000/user/hadoop/test.txt")
val count2 = textFile2.count()
val result2 = sc.parallelize(Seq(count2))
result2.saveAsTextFile("file:///root/result2.txt")
```
在上述代码中,我们首先使用`sc.textFile()`函数读取本地文件`/data/bigfiles/test.txt`和HDFS文件`/user/hadoop/test.txt`,然后使用`count()`函数计算它们的行数,并将结果存储在变量`count`和`count2`中。接下来,我们使用`sc.parallelize()`函数将`count`和`count2`转换为RDD对象,并使用`saveAsTextFile()`函数将它们保存到本地文件系统中的`/root/result.txt`和`/root/result2.txt`文件中。
需要注意的是,在执行上述代码之前,您需要先执行`bash /data/workspace/myshixun/env.sh`命令创建数据环境。此外,如果您的HDFS系统在不同的主机上或使用不同的端口,请相应地更改代码中的HDFS文件路径和端口号。
阅读全文