1 回答
TA貢獻1868條經驗 獲得超4個贊
您不能立即這樣map()做len(),sorted()因為您失去了最初的價值。這是一種實現方法:
map創建密鑰sorted(x)groupByKey--sorted(x)map創建密鑰len(x)groupByKey--len(x)collectAsMap()
ResultIterable如果要打印出來,可能需要將s轉換為特定的python類型:
例如(假設您已將所有單詞并行化為rdd):
In []:
(rdd
.map(lambda x: (''.join(sorted(x)), x))
.groupByKey()
.mapValues(lambda x: list(x))
.map(lambda x: (len(x[0]), x))
.groupByKey()
.mapValues(lambda x: dict(x))
.collectAsMap())
Out[]:
{6: {'abeill': ['alible'], 'cdeeit': ['deciet']},
8: {'chiiilst': ['chilitis']},
9: {'aabfiinst': ['fabianist'],
'abeiilnns': ['biennials'],
'acdeiituz': ['diazeutic'],
'bclooortu': ['oblocutor']},
10: {'aiilnoprtt': ['tripolitan']},
12: {'ceeeilnostuy': ['leucosyenite']}}
添加回答
舉報
