我已经使用filesystem读取了hdfs中的一个文件,需要计算文件的记录数。你能帮助统计以下代码的文件的记录数吗?
val inputStream:FSDataInputStream = fileSystem.open(dataFile)
val data = IOUtils.toString(inputStream, "UTF-8")
inputStream.close()发布于 2019-09-08 01:15:55
我假设您所说的记录计数指的是行数。
您可以使用java.io.BufferedReader逐行读取输入流,并递增计数器变量
import java.io.BufferedReader
import java.io.InputStreamReader
var count = 0
val inputStream: FSDataInputStream = fileSystem.open(dataFile)
val reader: BufferedReader = new BufferedReader(new InputStreamReader(inputStream))
var line: String = reader.readLine()
while(line!=null){
count+=1
line = reader.readLine()
}或者,您也可以使用reader.lines().count()来获取行数,但是使用这种方法,您将无法重用输入流来获取行中的实际数据,因为inputstream不可重用。
https://stackoverflow.com/questions/57835146
复制相似问题