Python 3.x Apache Spark union方法给出了无法解释的结果
我在用ApacheSpark玩Moby单词列表,下面是。 我首先使用这个文本文件创建了一个RDDPython 3.x Apache Spark union方法给出了无法解释的结果,python-3.x,apache-spark,pyspark,Python 3.x,Apache Spark,Pyspark,我在用ApacheSpark玩Moby单词列表,下面是。 我首先使用这个文本文件创建了一个RDD lines = sc.textFile("words.txt") 然后创建了两个RDD,其中包含有“p”和“s”的单词 然后建立了这两个的联盟 union_list = slines.union(plines) 然后,我用“计数”方法计算了每个列表中的单词数,对于slines、plines和union_列表,分别为64803、22969和87772。还有64803+22969=8
lines = sc.textFile("words.txt")
然后创建了两个RDD,其中包含有“p”和“s”的单词
然后建立了这两个的联盟
union_list = slines.union(plines)
然后,我用“计数”方法计算了每个列表中的单词数,对于slines、plines和union_列表,分别为64803、22969和87772。还有64803+22969=87772,这意味着没有同时带有“p”和“s”的单词。我使用
并计算得出13616的元素,然后创建一个新的RDD,其中包含带有“p”或“s”的单词
计算出74156的元素,这是有道理的,因为64803+22969-13616=74156。我对union方法做了什么错误?我在Windows 10和Python 3.5.1上使用Spark 1.6。方法不是集合联合操作。它只是连接了两个RDD,因此交叉点将被计数两次。如果要使用真正的集合并集,则需要在生成的RDD上运行:
union\u list=slines.union(plines).distinct()
方法不是集合并集操作。它只是连接了两个RDD,因此交叉点将被计数两次。如果要使用真正的集合并集,则需要在生成的RDD上运行:
union\u list=slines.union(plines).distinct()
union_list = slines.union(plines)
pslines = lines.filter(lambda x: ("p" in x) and ("s" in x))
newlist = lines.filter(lambda x: ("p" in x) or ("s" in x))