Pyspark 连接两个管道DRDD

Pyspark 连接两个管道DRDD,pyspark,jupyter-notebook,bigdata,rdd,Pyspark,Jupyter Notebook,Bigdata,Rdd,我正在尝试使用PySpatt jupyter笔记本中的.join()连接两个PipelineDRDD 第一个RDD: primaryType.take(5) ['DECEPTIVE PRACTICE', 'CRIM SEXUAL ASSAULT', 'BURGLARY', 'THEFT', 'CRIM SEXUAL ASSAULT'] 第二个RDD: districts.take(5) ['004', '022', '008', '003', '001'] 加入RDD: rdd_j

我正在尝试使用PySpatt jupyter笔记本中的.join()连接两个PipelineDRDD

第一个RDD:

primaryType.take(5)

['DECEPTIVE PRACTICE',
 'CRIM SEXUAL ASSAULT',
 'BURGLARY',
 'THEFT',
 'CRIM SEXUAL ASSAULT']
第二个RDD:

districts.take(5)
['004', '022', '008', '003', '001']
加入RDD:

rdd_joined = primaryType.join(districts)
rdd_joined.take(5)
输出:

[]

我做错了什么?

应该有一些唯一的键来连接这两个rdd,所以使用rdd.zipWithIndex()为这两个rdd创建索引,然后尝试连接它们

districts.take(5)
['004', '022', '008', '003', '001']

primaryType.take(5)

['DECEPTIVE PRACTICE',
 'CRIM SEXUAL ASSAULT',
 'BURGLARY',
 'THEFT',
 'CRIM SEXUAL ASSAULT']

districts=districts.zipWithIndex()

districts.take(5)
[('004', 0), ('022', 1), ('008', 2), ('003', 3), ('001', 4)]

districts=districts.map(lambda (x,y):(y,x))

primaryType=primaryType.zipWithIndex()
primaryType=primaryType.map(lambda (x,y):(y,x))
primaryType.join(districts).map(lambda (x,y):y).take(5)

[('DECEPTIVE PRACTICE', '004'), ('CRIM SEXUAL ASSAULT', '001'), ('CRIM SEXUAL ASSAULT', '022'), ('BURGLARY', '008'), ('THEFT', '003')]

你不需要pairrds来执行连接吗?好吧,我想我遗漏了一些东西。。那么,预期的产出是多少呢?似乎你在用土豆加入犯罪:)顺便说一句:我想我需要为RDD中的每个元素附加唯一的键,然后加入它们?