テキストファイルがあり、6単語以上の行をフィルタリングする必要があります。 私はRDDを作成します。単語を行に結合する
my_data = sc.textFile("lines.txt")
その後、私は言葉でそれぞれの行を分割:
line_words = my_data.map(lambda x: x.split(' '))
とフィルタを適用し、結果をファイルに保存します。
filtered_lines = line_words.filter(lambda x: len(x) > 6)
filtered_lines.saveAsTextFile("out")
そして、初期ファイルから:
hello world
its fun to have fun but you have to know how
私が取得:
[u'its', u'fun', u'to', u'have', u'fun', u'but', u'you', u'have', u'to', u'know', u'how']
にはどうすればカッコなしでバックラインに単語を組み合わせて、u''
のですか?
は、私はそのような何かよく知っている:
my_data.filter(lambda x: len(x.split(' ')) > 6).saveAsTextFile("out")
をしかし、私は人間のために結果を読みやすくする方法を学びたいです。
私の行がRDDのため、 'sentence =" ".join(line)'を使用するとTypeErrorが発生します。 – lacerated
Sry私はプログラミングで新しいです。 'combined_line = filtered_lines.map(lambda x:" ".join(x))'を使用しようとしました。一緒に2つの単語を結合するここで機能を減らす必要があると思った – lacerated