研究RDD-pyspark

时间:2016-01-18 14:25:35

标签: python pyspark spark-streaming rdd

我正在从Kafka接收数据到Spark Streaming应用程序。它采用Transformed DStreams的格式。然后我只保留我想要的功能。
features=data.map(featurize)
它给了我“名字”,“年龄”,“无论什么” 然后我想只保留所有数据的名称 features=data.map(featurize).map(lambda Names: Names["name"]

现在,当我打印此命令时,我得到了来自流媒体应用程序的所有名称,但我想分别处理每个名称。
更具体地说,我想检查每个名称,如果我过去曾经遇到它,我想在其上应用一个函数。否则我将继续我的申请。所以我希望每个名字都是一个字符串,以便我可以将它插入到我的函数中,以检查过去是否有过一个字符串。

我知道foreach会给我每个RDD,但我仍然想分别处理RDD的每个名称。

pyspark有什么方法可以这样做吗?

1 个答案:

答案 0 :(得分:0)

所以我做的是定义一个函数来检查我以前是否看过那个名字,然后使用.filter(myfunc)来处理我想要的名字......

现在的问题是,在每个新的流媒体窗口中,函数正在从开始应用,所以如果我在第一个窗口中看到了John的名字7次,我将只保留一次,但是如果我已经看到第二个窗口中John的名字5次我将再次保留它...

我想为所有流媒体应用程序保留一次John的名字...... 有什么想法?