【发布时间】:2016-05-01 19:07:15
【问题描述】:
我正在尝试从kafka 流中解析一些数据。以下是我目前正在做的事情。
Import /* … */
Object MyObject {
Def main (args: Array[String]){
/*spark streaming context set up*/
val kafkaStream = KafkaUtils.createStream(streamingContext,zkQuorum,groupID,[per-topic number of Kafka partitions to consume])
kafkaStream.persist(/*Storage Level*/)
val field_1_Retrieved = kafkaStream.parsingFunctionToRetrieveField1().print
val field_2_Retrieved = kafkaStream.parsingFunctionToRetrieveField2().print
val field_3_Retrieved = kafkaStream.parsingFunctionToRetrieveField3().print
ssc.start()
ssc.awaitTermination()
}
}
但是,这是我的输出:
-----------------------
Time xxxxxxxxxx ms
-----------------------
field_1_Retrieved
field_1_Retrieved
-----------------------
Time xxxxxxxxxy ms
-----------------------
field_2_Retrieved
field_2_Retrieved
-----------------------
Time xxxxxxxxxz ms
-----------------------
field_3_Retrieved
field_3_Retrieved
这接缝是随机的,肯定不是我对我的代码所期望的。应该是这样的:
Time xxxxxxxxxx ms
-----------------------
field_1_Retrieved
field_2_Retrieved
field_3_Retrieved
-----------------------
Time xxxxxxxxxy ms
-----------------------
field_1_Retrieved
field_2_Retrieved
field_3_Retrieved
spark 或 kafka 的功能缺少什么会导致这种行为?还是我做错了?
【问题讨论】:
-
parsingFunctionToRetrieveFieldX()的代码是什么?
标签: scala parsing apache-kafka spark-streaming