**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
26天前关门了。
改进这个问题
我正在尝试使用这个函数 flatMap
但是它并没有显示预期的结果(即一行中的每个单词),而是显示同一行中每个短语的所有单词。
有人知道这背后的原因吗?
public static void main(String[] args) {
System.setProperty("hadoop.home.dir", "C:\\hadoop") ;
Logger.getLogger("org.apache").setLevel(Level.WARN);
SparkConf conf = new SparkConf().setAppName("startingSpark").setMaster("local[*]") ;
JavaSparkContext sc = new JavaSparkContext(conf) ;
JavaRDD<String> initRdd = sc.textFile("src/main/resources/subtitles/input.txt") ;
JavaRDD<String> lettersOnlyRdd = initRdd.map( sentence-> sentence.replaceAll("[^a-zA-Z\\s]", "").toLowerCase()) ;
JavaRDD<String> removeBlankedLines = lettersOnlyRdd.filter(sentence -> sentence.trim().length()> 0);
JavaRDD<String> words = removeBlankedLines.flatMap(sentence ->Arrays.asList(sentence.split(" ")).iterator()) ;
JavaRDD<String> restWords = words.filter(word -> Util.isNotBoring(word)) ;
List<String> results = restWords.take(50) ;
results.forEach( value -> System.out.println(value));
}
结果显示:
但我想得到的是:
1条答案
按热度按时间mbskvtky1#
我猜,错误在于分裂。尝试
您试图在原始版本中拆分几个空格,因此没有拆分。