我想在scala中阅读HDFS文件。这是一个文本文件,希望在每一行中插入字段默认值。如何逐行读取hdfs文件?
我收到了这段代码:
val hdfs = FileSystem.get(new URI("hdfs://df:port/"), new Configuration())
val path = new Path("/dir/fileNm")
val stream = hdfs.open(path)
Stream.cons(stream.read, Stream.continually( stream.read))
但这是逐字节读取的。不推荐使用readLine()。怎么读一条线? 我正在使用scala版本 - 2.11.8
谢谢, Revathy。
答案 0 :(得分:2)
您可以使用val source = Source.fromInputStream(stream)
source.getLines() // Iterator[String]
:
{{1}}
答案 1 :(得分:0)
我认为你做了类似的事情:
def readLines = Stream.cons(stream.readLine, Stream.continually( stream.readLine))
readLines.takeWhile(_ != null).foreach(line => println(line))
答案 2 :(得分:0)
将内容传递给另一个将由新行字符描绘的函数,然后像往常一样使用该行。有时你必须自己做这项工作。