(2)在Spark Shell中读取HDFS文件"/user/hadoop/test.txt"(如果该文件不存在,请先创建), 然后统计出文件的行数。
时间: 2024-12-24 21:17:59 浏览: 3
在Spark Shell中,你可以使用` spark.read.text()`函数来读取HDFS文件,并结合`count()`方法来统计文件的行数。首先确保已经设置了SparkContext并指向了HDFS。如果文件不存在,你需要先通过Hadoop的命令行工具如`hdfs dfs -put`将其上传到HDFS。下面是一个示例步骤:
```scala
// 首先创建SparkSession(如果你还没有)
val sc = SparkSession.builder.appName("HDFS File Count").getOrCreate()
// 检查文件是否存在,如果不存在则创建
val filePath = "/user/hadoop/test.txt"
if (!sc.hadoopConfiguration.get("fs.defaultFS").contains(filePath)) {
val hdfsUrl = "hdfs://" + sc.hadoopConfiguration.get("fs.defaultFS")
sc.hadoopFileSystem().create(new Path(filePath)).close() // 创建一个空文件
}
// 读取文件内容
val textFile = sc.textFile(filePath)
// 统计行数
val lineCount = textFile.count()
println(s"The file $filePath contains $lineCount lines.")
```
运行上述代码后,你会看到文件的行数。
阅读全文