Scala文件读取和计数记录
我有hdfs中的输入文件,需要读取并转换为字符串,并将其存储到另一个文件中,其间需要计算该输入文件的记录。我尝试下面的代码,但它不起作用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
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
返回空(如果有的话)。您需要同时执行这两个操作(将文件内容保存到字符串+行数),或者重新打开文件以计算行数。我会选择前者。你能给我(将文件内容保存为字符串+计数行)的代码吗