首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flatMap抛出错误-unicode项没有属性flatMap

flatMap抛出错误-unicode项没有属性flatMap
EN

Stack Overflow用户
提问于 2015-11-05 09:16:31
回答 1查看 338关注 0票数 0

给定输入、rdd或表单

代码语言:javascript
复制
1: 6 7
2: 5

我怎样才能得到另一种形式的rdd?

代码语言:javascript
复制
1 6
1 7
2 5

以此类推。

没有属性flatMap的消息unicode项失败

代码语言:javascript
复制
def get_str(x,y):
    ..code to flatmap 
    return op
text = sc.textFile(inputs)
res = text.map(lambda l:l.split(":")).map(lambda (x,y):get_str(x,y))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 10:04:35

我不太喜欢Python,但看起来您正在尝试在flatMap中使用map,但是您需要用flatMap替换map。在Scala中,我会这样做:

代码语言:javascript
复制
val text = sc.textFile(inputs)
val res = text.map(l => l.split("[\\s:]+"))
              .flatMap(list => list.drop(1).map(i => (list(0), i)))

请注意,我使用" "":"来获得一个值列表。

Python中也有相同的内容:

代码语言:javascript
复制
def to_seq(s):
    k, vs = s.split(":")
    for v in vs.split():
        yield k, v

text = sc.parallelize(["1: 6 7", "2: 5"])
res = text.flatMap(to_seq)
res.take(3)

## [('1', '6'), ('1', '7'), ('2', '5')]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33540559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档