Некоторым из вас это может показаться очень сложной проблемой. Я хочу использовать Apache Flink для применения некоторых алгоритмов к данным из SocketStream. Однако эти алгоритмы являются внешними исполняемыми файлами, которые я запускаю с помощью пакета Scala sys.process
. Вот что я хочу, чтобы Flink сделал:
Получить отдельные строки из SocketStream:
val text = env.socketTextStream(hostName, port) val lines = text.flatMap { _.toLowerCase.split("\\n") filter { _.nonEmpty } }
Вызовите мой исполняемый алгоритм с этими строками в качестве параметров командной строки. Примерно так:
var op = "./Somefile.py "+lines!
Распечатайте вывод, который я получаю от исполняемого файла.
op.print()
Очевидно, что это неправильный способ сделать то, что я пытаюсь сделать, поскольку op
в отличие от lines
не является приемником данных, и поэтому ничего не печатается. Есть ли способ добиться этого?