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 に答える