如何在Java中使用拉姆达flatMap()星火2.1

问题描述 投票:1回答:1

我移植了一个Python应用程序到Java,并贴在实施LAMBDA flatMap()的正确方法。我通过IP日志分析,需要拆就“”(空格)。

我的环境:

  • 星火VRS 2.1
  • 的IntelliJ
  • Java的8
  • JDK 1.92

我所拥有的是:

加载数据框:

Dataset<Row> MyLog = spark.sql("Select RecordNumber, IpAddress from Table);
MyLog.createOrReplaceTempView("MyLog");

现在尝试拉姆达flatmap()

Dataset<String> Mylog2 = Mylog.flatMap(e -> String.asList(e.split(' ')));

我已经试过这几个变化,包括:

Dataset<Row> Mylog2 = Mylog.flatMap(e -> Array.asList(e.split(' ')));
Dataset<String> Mylog2 = Mylog.flatMap(lambda(e -> String.asList(e.split(' '))));

等等

原来蟒蛇是这样的:

Mylog2 = Mylog.rdd.flatMap(lambda(x,y): ((x,v) for v in y.split(' ')))

我将不胜感激任何见解正确的方法用放电来实现这个Java中

谢谢

java python-2.7 apache-spark apache-spark-sql flatmap
1个回答
0
投票

关于什么:

Dataset<String> Mylog2 = Mylog.flatMap(row -> java.util.Arrays.stream(row.getString(1).split(' ')).iterator(), Encoders.STRING());

但是你要哪一列分割?在Ip地址?

© www.soinside.com 2019 - 2024. All rights reserved.