微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从字符列表创建对 RDD

如何解决从字符列表创建对 RDD

我正在尝试创建一个配对的 RDD,其中的键将来自一个 RDD,而所有的值都是 1。

例如,如果有人要导入字符串 "Hello World!" 并将其并行化为 RDD,输出将是:('h',1),('e',('l',...

到目前为止,我已经写了:

keyRDD = characterRDD.map(lambda x: (x,1))

的结果是 (['h','e','l','o','w','r','d,' '!'],1)输出关闭,但不是我要找的。​​p>

我也尝试过使用 for 循环,但在尝试迭代 RDD 时收到错误

解决方法

您可以将 flatMap 与列表理解结合使用:

rdd = sc.parallelize(["hello world!"])

rdd = rdd.flatMap(lambda s: [(l,1) for l in s if l != ' '])

print(rdd.collect())
#[('h',1),('e',('l',('o',('w',('r',('d',('!',1)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。