Автор оригинала: Python Examples.
Pyspark – подсчет слова
В этом примере подсчета слов Pyspark мы узнаем, как посчитать вхождению уникальных слов в текстовой строке. Конечно, мы узнаем Map-Unize, основной шаг для изучения больших данных.
Python Program
import sys
from pyspark import SparkContext, SparkConf
if __name__ == "__main__":
# create Spark context with necessary configuration
sc = SparkContext("local","PySpark Word Count Exmaple")
# read data from text file and split each line into words
words = sc.textFile("D:/workspace/spark/input.txt").flatMap(lambda line: line.split(" "))
# count the occurrence of each word
wordCounts = words.map(lambda word: (word, 1)).reduceByKey(lambda a,b:a +b)
# save the counts to output
wordCounts.saveAsTextFile("D:/workspace/spark/output/")Запустите это зажигание Python Spark.
> spark-submit pyspark_example.py
Если приложение работает без каких-либо ошибок, на выходе указана выходная папка. D:/Workspace/Spark/вывод/ Отказ
Если вы попытаетесь запустить приложение еще раз, вы можете получить ошибку на выходе консоли, как показано ниже.
Выход
py4j.protocol.Py4JJavaError: An error occurred while calling o44.saveAsTextFile.
: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory file:/D:/workspace/spark/output already exists
at org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:131)
at org.apache.spark.internal.io.HadoopMapRedWriteConfigUtil.assertConf(SparkHadoopWriter.scala:287)
at org.apache.spark.internal.io.SparkHadoopWriter$.write(SparkHadoopWriter.scala:71)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply$mcV$sp(PairRDDFunctions.scala:1096)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply(PairRDDFunctions.scala:1094)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply(PairRDDFunctions.scala:1094)Это связано с тем, что во время нашего первого запуска создана выходная папка. Прежде чем попробовать это снова, вам нужно явно удалить выходную папку.
Проанализируйте ввод и вывод количества слов Pyspark
Давайте проанализируем ввод и вывод этого примера.
Мы предоставили следующие данные в текстовом файле ввода.
Python Lists allow us to hold items of heterogeneous types. In this article, we will learn how to create a list in Python; access the list items; find the number of items in the list, how to add an item to list; how to remove an item from the list; loop through list items; sorting a list, reversing a list; and many more transformation and aggregation actions on Python Lists.
В выходной папке вы заметите следующий список файлов.
Открыть часть-00000. Содержимое будет показано ниже:
('Python', 2)
('Lists', 1)
('allow', 1)
('us', 1)
('to', 5)
('hold', 1)
('items', 2)
('of', 2)
('heterogeneous', 1)
('types.', 1)
('In', 1)
('this', 1)
('article,', 1)
('we', 1)
('will', 1)
('learn', 1)
('how', 3)
('create', 1)
('a', 3)
('list', 3)
('in', 2)
('Python;', 1)
('access', 1)
('the', 4)
('items;', 2)
('find', 1)
('number', 1)
('list,', 2)
('add', 1)
('an', 2)
('item', 2)
('list;', 3)
('remove', 1)
('from', 1)
('loop', 1)
('through', 1)
('sorting', 1)
('reversing', 1)
('and', 2)
('many', 1)
('more', 1)
('transformation', 1)
('aggregation', 1)
('actions', 1)
('on', 1)
('Lists.', 1)Что мы сделали в Pyspark Word Count?
Мы создали SparkContext для подключения драйвера, который проходит локально.
sc = SparkContext("local","PySpark Word Count Exmaple")Затем мы прочитаем входной текстовый файл, используя переменную SPARCCONTEXT и создал плоский аппарат слов. Слова имеют тип pythonrdd.
words = sc.textFile("D:/workspace/spark/input.txt").flatMap(lambda line: line.split(" "))Мы разделили слова, используя одно пространство в качестве сепаратора.
Затем мы рассмотрим каждое слово к ключу: значение пара Word: 1, 1 – количество вхождений.
words.map(lambda word: (word, 1))
Затем результат уменьшается ключом, что является словом, а значения добавляются.
reduceByKey(lambda a,b:a +b)
Результат сохраняется в текстовый файл.
wordCounts.saveAsTextFile("D:/workspace/spark/output/")Резюме
Заключение этого руководства примеров Python, мы узнали, как посчитать вхождению уникальных слов, использующих Pyspark.