Python 研究RDD pyspark的不同元素

Python 研究RDD pyspark的不同元素,python,pyspark,spark-streaming,rdd,Python,Pyspark,Spark Streaming,Rdd,我正在从卡夫卡接收数据,并将其输入Spark流媒体应用程序。它以转换数据流的形式出现。然后我只保留我想要的功能。 features=data.map(特征化) 这给了我“姓名”、“年龄”、“随便什么”。 然后我只想保留所有数据的名称 features=data.map(featureize.map)(lambda名称:Names[“name”] 现在,当我打印此命令时,我会从流媒体应用程序中获取所有名称,但我想分别处理每个名称。 更具体地说,我想检查每个名称,如果我在过去遇到过它,我想对其应用一

我正在从卡夫卡接收数据,并将其输入Spark流媒体应用程序。它以转换数据流的形式出现。然后我只保留我想要的功能。
features=data.map(特征化)

这给了我“姓名”、“年龄”、“随便什么”。
然后我只想保留所有数据的名称
features=data.map(featureize.map)(lambda名称:Names[“name”]

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

我知道,
foreach
将给我每个RDD,但我仍然希望分别处理RDD的每个名称


pyspark中有什么方法可以做到这一点吗?

因此,我所做的是定义一个函数,检查我过去是否见过该名称,然后使用
.filter(myfunc)
仅处理我想要的名称

现在的问题是,在每个新的流媒体窗口中,函数都是从Begging应用的,因此,如果我在第一个窗口中看到John的名字7次,我将只保留一次,但是如果我在第二个窗口中看到John的名字5次,我将再次保留一次

我想在所有流媒体应用程序中保留John的名字一次。。。
有什么想法吗?

因此,我所做的是定义一个函数,检查我是否在过去见过该名称,然后使用
.filter(myfunc)
仅处理我想要的名称

现在的问题是,在每个新的流媒体窗口中,函数都是从Begging应用的,因此,如果我在第一个窗口中看到John的名字7次,我将只保留一次,但是如果我在第二个窗口中看到John的名字5次,我将再次保留一次

我想在所有流媒体应用程序中保留John的名字一次。。。
对此有何想法?

您是否尝试过updateStateByKey,其中的键是您的姓名?我如何使用updateStateByKey从不同的流媒体窗口保留姓名?您可以在此处找到有用的信息(找到updateStateByKey部分):您是否尝试过updateStateByKey,其中键是您的姓名?如何使用updateStateByKey从不同的流媒体窗口保留姓名?您可以在此处找到有用的信息(找到updateStateByKey部分):