#!/usr/bin/python -tt
The main() below is already defined and complete. It calls print_words()
and print_top() functions which you write.
1. For the --count flag, implement a print_words(filename) function that counts
how often each word appears in the text and prints:
word1 count1
word2 count2
...
Print the above list in order sorted by word (python will sort punctuation to
come before letters -- that's fine). Store all the words as lowercase,
so 'The' and 'the' count as the same word.
2. For the --topcount flag, implement a print_top(filename) which is similar
to print_words() but which prints just the top 20 most common words sorted
so the most common word is first, then the next most common, and so on.
Use str.split() (no arguments) to split on all whitespace.
Workflow: don't build the whole program at once. Get it to an intermediate
milestone and print your data structure and sys.exit(0).
When that's working, try for the next milestone.
Optional: define a helper function to avoid code duplication inside
print_words() and print_top().
"""
import sys
def print_words(filename):
result=helper(filename)
wfile=open('/media/python/basic/test.txt', 'w')
for word in sorted(result):
wfile.write(word[0]+'\t'+str(word[1])+'\n')
print word[0]+'\t'+str(word[1])
wfile.close()
def get_last(tup):
return tup[-1]
def helper(filename):
f=open(filename)
words=f.read()
f.close()
words=words.lower().split()
result=set()
for word in words:
result.add((word.lower(),words.count(word)))
return result
def print_top(filename):
result=helper(filename)
i=0
for word in sorted(result,key=get_last,reverse=True):
print word[0]+'\t'+str(word[1])
i+=1
if i>=19:
break
###
# This basic command line argument parsing code is provided and
# calls the print_words() and print_top() functions which you must define.
def main():
if len(sys.argv) != 3:
print 'usage: ./wordcount.py {--count | --topcount} file'
sys.exit(1)
option = sys.argv[1]
filename = sys.argv[2]
if option == '--count':
print_words(filename)
elif option == '--topcount':
print_top(filename)
else:
print 'unknown option: ' + option
sys.exit(1)
if __name__ == '__main__':
main()
分享到:
相关推荐
### Python 实现 MapReduce 的 WordCount 示例详解 #### 一、引言 MapReduce 是 Hadoop 生态系统中的一种编程模型,主要用于大规模数据集的并行处理。它通过两个主要阶段——`Map` 和 `Reduce` 来实现数据处理任务...
要使用Python实现WordCount,我们需要两个主要的脚本:mapper.py和reducer.py。 **mapper.py** 的任务是读取输入数据,分隔成单词,并为每个单词输出一行格式为`<word>\t1`的记录。例如: ```python #!/usr/bin/env...
$ python wordCount.py input.txt output.txt 跟踪文本文件中每个单词出现的总次数 排除空格和标点符号 不区分大小写 打印输出到输出文件(如果存在,则覆盖),将单词列表按降序排列,其总数用空格隔开,每行一个...
您的任务是创建一个python 2程序,该程序: 以输入文件和输出文件的名称为输入例子$ python wordCount.py input.txt output.txt 跟踪文本文件中每个单词出现的总次数排除空格和标点符号不区分大小写打印输出到输出...
- `9wordcount.py`:可能涉及到文本分析,如计算电影评论的词频,进行情感分析等。 6. **数据处理流程**:根据文件名推测,这个项目可能涵盖了数据爬取(3pachong.py)、数据清洗(可能在多个脚本中进行)、数据...
本课件主要关注使用Python语言编写MapReduce程序,以实现大数据处理中的WordCount案例。MapReduce是Google提出的一种并行计算模型,广泛应用于大数据处理领域。 ### 1. Python环境准备 - **编程IDE**:PyCharm社区...
Python实验室 Python练习取自,我...list1.py大约需要10分钟, list2.py大约需要10分钟显示字典并从文件中读取(约10分钟) 如果有时间,请让他们实施wordcount.py或作为作业(约30分钟)可选的如何使用FacebookSDK获
- 直接运行:在程序所在目录使用Python执行,如`python3 WordCount.py`。 - 使用`spark-submit`提交:在Spark安装目录下的`bin`目录执行`spark-submit WordCount.py`。可以通过`spark-submit --help`查看可用选项...
$ python wordcount-local.py /datasets/gutenberg-small/*.txt > salida-serial.txt $ more salida-serial.txt MRJob $ cd 02-mapreduce $ python wordcount-mr.py ../datasets/gutenberg-small/*.txt CLI的...
wordcount_matrix 生成字数矩阵的python工具使用示例:python wordcount_matrix.py -d ~/Downloads/wordpress -f .php -o wordpress.csv 指定一个可选的目录路径、一个可选的文件掩码(此时没有通配符)和一个可选的...
为了调用新浪API,还需要安装新浪提供的Python SDK,可以通过`pip install sinaweibopy`或下载源码后运行`python setup.py install`进行安装。 2. **申请应用与API授权**:开发者需要在新浪开放平台...
假派多普 ... $ ./fake-pydoop.py /path/to/pydoop/examples/wordcount/bin/wordcount-minimal.py </path/to/pydoop/examples/input/alice.txt 基于Matteo Bertozzi的纯Python SequenceFile Reader
wordcount-improved.py 和 reddit-averages.py 这两个文件在我的 Hadoop-MapReduce 文件夹中执行与 WordCountImproved.java、RedditAverages.java 相同的工作,但不是使用 java MapReduce,而是使用 Spark 核心 ...
3. `wordcount_project`:这是Django项目的根目录,可能包含`settings.py`(项目配置)、`urls.py`(URL路由)、`views.py`(视图函数)等文件。 4. `static` 和 `templates` 目录:分别用于存放静态资源(如CSS、...
> -files WordCountMap.py,WordCountReduce.py \ -input /users/jquinn13/Words \ -output /users/jquinn13/WordCount \ -mapper WordCountMap.py \ -reducer WordCountReduce.py 示例输出 the 202466 and 195977 ...
保存以下代码为 `wordcount.py`: ```python from pyspark.sql import SparkSession spark = SparkSession.builder.appName("SimpleApp").getOrCreate() text_file = spark.sparkContext.textFile("sample....
mapper.py(mapper 文件)和 reducer.py(reducer 文件):/usr/local hdfs 中的 words.txt:/wordcount 创建文件 touch words.txt 在 hdfs 中制作目录 hadoop fs -mkdir -p /wordcount 将测试文件从本地目录...
假设你有一个Scala或Python编写的Spark应用程序 `app.py`: ``` spark-submit --class "com.example.App" --master local[2] /path/to/app.jar ``` 或者使用Python脚本: ``` spark-submit /path/to/app.py...
本文实例讲解的是一般的hadoop入门程序“WordCount”,就是首先写一个map程序用来将输入的字符串分割成单个的单词,然后reduce这些单个的单词,相同的单词就对其进行计数,不同的单词分别输出,结果输出每一个单词...