У меня есть огромный текстовый файл статей в википедии, каждая строка файла - одна статья. Я пытаюсь создать RDD, который будет состоять из массивов строк, каждый массив будет представлять строку текстового файла (полную статью), тогда я хочу подсчитать частоту слов каждого массива, чтобы в конце я получил:Pyspark, выполнять подсчет слов в RDD, состоящий из массивов строк.
[[Article1 слова-частотные кортежи], [слова-Статья 2 частотные кортежи], ...]
Я создаю РДД:
corpus = sc.textFile("articles.txt")
Тогда я плоскую карту, чтобы разделить в отличие массивы строк
docs = corpus.flatMap(lambda doc: [doc.split(' ')])
Если я пытаюсь сделать вторую карту для того, чтобы создать пары слово-значение («слово», 1) следующим образом:
docs.map(lambda word: (word,1))
Я получаю пару статья-значение, это было бы полезно, если бы я хотел чтобы подсчитать количество статей в корпусе, как я могу подсчитать слова в каждой статье?
Я думаю, обращаясь к каждому массиву в РДУ и выполнения снижения на этом конкретном массиве каждый раз, когда я попытался
docs.map(lambda word: (word[0],1)))
но это только получает первую строку каждого массива. Любые предложения более чем приветствуются! большое спасибо!!!!
Отлично! Большое спасибо!! – Artemis