Pyspark流媒体:选择首次出现的事件(列上的唯一)

时间:2018-06-12 04:44:01

标签: pyspark spark-streaming

我有一个来自Kafka话题的DStream并且工作得非常好。

DStream看起来像这样:

  

{u'Id':u'a947fjrie8',u'Amount':   4590.0,u'CloseDate':u'2018-02-28T00:00:00.000Z'}

但是对于每个Id,我在特定的日子里会得到更多的流。同样好。

我想做以下事情:

  1. 仅过滤具有'CloseDate'= TODAY
  2. 的流
  3. 现在,由于每个'Id'都有多个流,所以只选择第一个并过滤掉其余的。
  4. 我无法进行过滤,然后如何在当前日期的窗口中使用unique。

    以下是完全没问题的片段,但它没有做上述两件事。

        if __name__ == '__main__':
    
        findspark.add_packages("org.apache.spark:spark-streaming-kafka-0-10_2.11:2.3.0")
        producer = KafkaProducer(bootstrap_servers='localhost:9092')
    
        sc = SparkContext(appName="PythonSparkStreamingKafka")
        sc.setLogLevel("WARN")
        ssc = StreamingContext(sc, 1)
        sqlContext = sql.SQLContext(sc)
    
        kafkaStream = KafkaUtils.createStream(ssc, 'localhost:2181', "spark-streaming-opportunity", {'testing1': 1})
    
        lines = kafkaStream.map(lambda x: x[1])
    
        lines.foreachRDD(handler)
    
        ssc.start()
        ssc.awaitTermination()
    

0 个答案:

没有答案