我是scala和spark流媒体的新手,我有一个让我困惑几个小时的问题:
目前我生成了一个列表[T]的Dstream,打印为
List(PV(57,2,1448910200000,0xD13617EBC1032E0869C7,BI Office),
PV(57,2,1447200000000,0xD13617EBC1032E0869C7,UPS office),
PV(100,2,1449900000000,0xD13617EBC1032E0869C7,BI Office),
PV(57,2,1447200000000,0xD13617EBC1032E0869C7,UPS office))
有没有办法将此Dstream of list转换为Dstream,如
PV(57,2,1448910200000,0xD13617EBC1032E0869C7,BI Office)
PV(57,2,1447200000000,0xD13617EBC1032E0869C7,UPS office)
PV(100,2,1449900000000,0xD13617EBC1032E0869C7,BI Office)
PV(57,2,1447200000000,0xD13617EBC1032E0869C7,UPS office)
然后我可以将它转换为pairDStream并在Dstream上实现updateStateByKey函数。
答案 0 :(得分:0)
尝试:
dstream.flatMap(list => list)
答案 1 :(得分:0)
您可以使用Dstream的flatMap功能。它将通过从源中的每个记录生成多个新记录来创建新的DStream。
val words:Dstream[List[T]] = { ........... }
val word:Dstream[T] = words.flatMap(list => list)