如何拆分 JavaDStream<String> 并打印该行的第二个字

How to split JavaDStream<String> and print the second word of the line

拆分后我只能打印所有单词,但在我的情况下我只想要该行的第二个单词我该如何解决?


JavaDStream<String> words = kafkaSparkInputDStream.flatMap(new FlatMapFunction<String, String>() {
                public Iterable<String> call(String x) {
                    return Arrays.asList(x.split(" "));
                }
            });
words.print();

你能select你想要拆分数组中的哪个元素吗?您可以使用 x.split(1)[1] 但是这可能会导致异常,所以另一种更容易出错的方法是:

JavaDStream<String> words = kafkaSparkInputDStream.flatMap(new FlatMapFunction<String, String>() {
                public Iterable<String> call(String x) {
                    return Arrays.stream(x.split(" "))
                        .skip(1)
                        .limit(1)
                        .collect(Collectors.toList());
                }
            });
words.print();