Я портирую через приложение Python на Java и застрял на правильном пути реализации лямбда flatMap()
.Я разбираю логи IP и мне нужно разделить на '' (пробел).
Мое окружение:
- Spark vrs 2.1
- IntelliJ
- Java 8
- jdk 1.92
То, что у меня есть:
Загрузить фрейм данных:
Dataset<Row> MyLog = spark.sql("Select RecordNumber, IpAddress from Table);
MyLog.createOrReplaceTempView("MyLog");
Теперь попытайтесь использовать lambda 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 с помощью Spark
Спасибо