1

我有一个defaultdict看起来像这样的:

"Some text" : ["Some date", "Some date", "Some Date"]

我正在尝试访问每个键的每个单独的值,如下所示:

for processedTweet, date in tweetsDict.iteritems():
    print date
    for d in date:
        print d

这在普通的 Python 脚本中运行良好。它首先打印整个列表,然后在 for 循环中打印每个单独的日期。

但是当我将它作为 Map/Reduce 作业的一部分发送到 Hadoop 时,它会将列表分成单个字符,而不是字符串,即:

Some date

变成

S
o
m

等为什么会发生这种情况,我该如何解决?

4

1 回答 1

0

hadoop 中的 map/reduce 作业是将列表值分配给 for 循环,而不是传递整个列表。默认情况下,当 python 迭代一个字符串对象时,每次迭代都会返回字符串中的下一个字符。

于 2013-09-03T01:40:58.473 回答