在pysp中找到变位词

2024-05-16 22:08:30 发布

您现在位置:Python中文网/ 问答频道 /正文

变量origin的类型是pyspark.rdd.PipelinedRDDorigin包含如下内容:

[u'masquerade',
 u'squaremade',
 u'dianas',
 u'naiads',
 u'antagonist',
 u'stagnation',
 u'bates',
 u'beast',
 u'beats',
 u'thanks']

我要键和所有按键排序的变音图:

^{2}$

我知道它可能需要mapreducebykey函数,但我真的不知道怎么做。在


Tags: 类型内容originpysparkrddmasqueradebeatsbates
1条回答
网友
1楼 · 发布于 2024-05-16 22:08:30

首先需要定义RDD:

origin =  [u'masquerade',
    u'squaremade',
    u'dianas',
    u'naiads',
    u'antagonist',
    u'stagnation',
    u'bates',
    u'beast',
    u'beats',
    u'thanks']

origin_rdd = sc.parallelize(origin)

您可以打印它以查看结果:

^{pr2}$

现在将其转换为键值对:

origin_kv = origin_rdd.map(lambda word: ("".join(sorted([letter for letter in word])),[word]))

减少:

res = origin_kv.reduceByKey(lambda word1,word2: word1 + word2)

您可以打印结果:

print res.take(10)

如果还需要对键进行排序,并且驱动程序中有足够的空间存储所有数据,则可以对结果进行排序:

print sorted(res.take(10))

相关问题 更多 >