给定输入、rdd或表单
1: 6 7
2: 5我怎样才能得到另一种形式的rdd?
1 6
1 7
2 5以此类推。
没有属性flatMap的消息unicode项失败
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))发布于 2015-11-05 10:04:35
我不太喜欢Python,但看起来您正在尝试在flatMap中使用map,但是您需要用flatMap替换map。在Scala中,我会这样做:
val text = sc.textFile(inputs)
val res = text.map(l => l.split("[\\s:]+"))
.flatMap(list => list.drop(1).map(i => (list(0), i)))请注意,我使用" "和":"来获得一个值列表。
Python中也有相同的内容:
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')]https://stackoverflow.com/questions/33540559
复制相似问题