У меня есть текстовый файл и вам нужно фильтровать строки, содержащие более 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")
Но я хочу, чтобы узнать, как сделать результаты читаемым для человека.
Я получаю TypeError при использовании 'предложение =" ".join (строка)', так как моя строка RDD – lacerated
Sry, я новичок в программировании. Пытался использовать 'объединенный_line = filter_lines.map (lambda x:" ".join (x))' и он сработал! Думаю, нам нужно уменьшить функцию здесь, которая объединяет 2 слова вместе – lacerated