我刚刚开始使用Apache Flink(Scala API),我的问题如下: 我试图根据Flink站点的一个例子将数据从Kafka传输到Apache Flink:
val stream =
env.addSource(new FlinkKafkaConsumer09("testing", new SimpleStringSchema() , properties))
一切正常,stream.print()语句在屏幕上显示以下内容:
2018-05-16 10:22:44 AM | 1 | 11 | -71.16 | 40.27
我想使用案例类来加载数据,我尝试过使用
flatMap(p=>p.split("|"))
但它一次只能将数据分成一个字符。
基本上,预期结果是能够填充案例类的5个字段,如下所示
field(0)=2018-05-16 10:22:44 AM
field(1)=1
field(2)=11
field(3)=-71.16
field(4)=40.27
但现在正在做:
field(0) = 2
field(1) = 0
field(3) = 1
field(4) = 8
等等......
非常感谢任何建议。
提前谢谢
弗兰克
答案 0 :(得分:3)
问题在于String.split
的用法。如果使用String
调用它,则该方法希望它是正则表达式。因此,p.split("\\|")
将是输入数据的正确正则表达式。或者,您也可以调用指定分隔字符split
的{{1}}变体。两种解决方案都可以为您提供所需的结果。