Scala文件读取和计数记录

Scala文件读取和计数记录,scala,hdfs,Scala,Hdfs,我有hdfs中的输入文件,需要读取并转换为字符串,并将其存储到另一个文件中,其间需要计算该输入文件的记录。我尝试下面的代码,但它不起作用 val inputStream:FSDataInputStream = fileSystem.open(dataFile) val data = IOUtils.toString(inputStream, "UTF-8") val reader: BufferedReader = new BufferedReader(new InputStrea

我有hdfs中的输入文件,需要读取并转换为字符串,并将其存储到另一个文件中,其间需要计算该输入文件的记录。我尝试下面的代码,但它不起作用

val inputStream:FSDataInputStream = fileSystem.open(dataFile)

val data = IOUtils.toString(inputStream, "UTF-8")

val reader: BufferedReader = 
    new BufferedReader(new InputStreamReader(inputStream))

val count = reader.lines().count()
println( "count of file is" , count) 

reader.close()
inputStream.close()

val outputstream = fileSystem.create(newfile)
outputstream.writeBytes(data)
outputstream.close()

Java中的
InputStream
只可读一次-当您调用
IOUtils.toString(…)
时,您会耗尽它,这就是为什么
count
返回空(如果有的话)。您需要同时执行这两个操作(将文件内容保存到字符串+行数),或者重新打开文件以计算行数。我会选择前者。你能给我(将文件内容保存为字符串+计数行)的代码吗