PairRDD,将多行值转换为一个行值

问题描述

我正在使用 WholeTextFiles 读取几个文件,但我想将所有文本行都放在一行中,我正在使用 reduce reduceByKey ,也许我只是做错了。

这是PairRDD

Key          Text
|\test1.log  |line text1
|            |line text2
|            |line text3
|\test2.log  |line text1
|            |line text2

我想做到这一点:

Key          Text
|\test1.log  |line text1 line text2 line text3
|\test2.log  |line text1 line text2

我希望清楚。

预先感谢您的帮助。

解决方法

我最近做到这一点:

sc.wholeTextFiles("C:\*.log").map({case (name,contents) =>
      (name,contents.replaceAll("[\r\n]"," ")