Spark с использованием Python: сохранение вывода RDD в текстовые файлы

Я пытаюсь использовать функцию подсчета слов в иске, используя python. Но я столкнулся с проблемой, когда пытаюсь сохранить вывод RDD в текстовом файле с помощью команды .saveAsTextFile. Вот мой код. Пожалуйста, помогите мне. Я застрял. Цените свое время.

import re from pyspark import SparkConf , SparkContext def normalizewords(text): return re.compile(r'\W+',re.UNICODE).split(text.lower()) conf=SparkConf().setMaster("local[2]").setAppName("sorted result") sc=SparkContext(conf=conf) input=sc.textFile("file:///home/cloudera/PythonTask/sample.txt") words=input.flatMap(normalizewords) wordsCount=words.map(lambda x: (x,1)).reduceByKey(lambda x,y: x+y) sortedwordsCount=wordsCount.map(lambda (x,y):(y,x)).sortByKey() results=sortedwordsCount.collect() for result in results: count=str(result[0]) word=result[1].encode('ascii','ignore') if(word): print word +"\t\t"+ count results.saveAsTextFile("/var/www/myoutput") 

так как вы собрали results=sortedwordsCount.collect() так что это не RDD. Это будет обычный список или кортеж python.

Как вы знаете, list – это объект / структура данных python, а append – метод добавления элемента.

 >>> x = [] >>> x.append(5) >>> x [5] 

Аналогично, RDD представляет собой структуру объектов / данных saveAsTextFile и saveAsTextFile – это метод записи файла. Важным является его распределенная структура данных.

Таким образом, мы не можем использовать append в RDD или saveAsTextFile в списке. collect метод на RDD, чтобы добраться до RDD в память драйвера.

Как указано в комментариях, сохраните sortedwordsCount с saveAsTextFile или откройте файл в python и используйте results для записи в файл