知识点
相关文章
更多最近更新
更多Python 写的Hadoop小程序
2019-03-28 13:33|来源: 网络
该程序是在python2.3上完成的,python版本间有差异。
Mapper:
import sys
line_number = 0
tab_number = 0
pv_number = 0
clk_number = 0
if_compressed_tested = 0
if_compressed = 0
#functions:
def compressed_stat(line):
global line_number
global tab_number
global pv_number
global clk_number
try:
line_number += 1
line_split_list = line.split("\t")
line_split_list_size = len(line_split_list)
tab_number += (line_split_list_size - 1)
index = 1
while index < line_split_list_size:
pv_clk_list = line_split_list[index].strip().split(" ")
pv_number += int(pv_clk_list[0])
clk_number += int(pv_clk_list[1])
index += 1
except ValueError:
print line,"\tERROR"
def before_compress_stat(line):
global line_number
global pv_number
global clk_number
try:
line_number += 1
line = line.strip()
line_split_list = line.split(" ")
pv_number += int(line_split_list[0])
clk_number += int(line_split_list[1])
except ValueError:
print line,"\tERROR"
#end functions
for line in sys.stdin:
try:
line = line.strip()
if if_compressed_tested == 0:
if_compressed_tested = 1
if line.find("\t") > 0:
if_compressed = 1
if if_compressed == 0:
before_compress_stat(line)
else:
compressed_stat(line)
except ValueError:
pass
if if_compressed == 1:
print ("%ld %ld %ld %ld"%(line_number, tab_number, pv_number,clk_number))
else:
print ("%ld %ld %ld"%(line_number,pv_number,clk_number))
Reducer:
import sys
line_number = 0
tab_number = 0
pv_number = 0
clk_number = 0
if_compressed_tested = 0
if_compressed = 0
def compressed_stat(line):
global line_number
global tab_number
global pv_number
global clk_number
pv_clk_list = line.split(" ")
if len(pv_clk_list) != 4:
print line,"\tERROR"
else:
line_number += int(pv_clk_list[0])
tab_number += int(pv_clk_list[1])
pv_number += int(pv_clk_list[2])
clk_number += int(pv_clk_list[3])
def before_compress_stat(line):
global line_number
global pv_number
global clk_number
pv_clk_list = line.split(" ")
if len(pv_clk_list) != 3:
print line,"\tERROR"
else:
line_number += int(pv_clk_list[0])
pv_number += int(pv_clk_list[1])
clk_number += int(pv_clk_list[2])
#
for line in sys.stdin:
try:
line = line.strip()
if line.count("ERROR") > 0:
print line
continue
if if_compressed_tested == 0:
if_compressed_tested = 1
if len(line.split(" ")) == 4:
if_compressed = 1
elif len(line.split(" ")) == 3:
if_compressed = 0
else:
print line,"\tERROR"
continue
if if_compressed == 0:
before_compress_stat(line)
else:
compressed_stat(line)
except ValueError:
print line, "\tERROR"
pass
if if_compressed == 0:
print "LINE_NUMBER:",line_number,"TOTAL_PV_NUMBER:",pv_number, "TOTAL_CLK_NUMBER:",clk_number
else:
print "LINE_NUMBER:",line_number,"TAB_NUMBER",tab_number,"TOTAL_PV_NUMBER:",pv_number, "TOTAL_CLK_NUMBER:",clk_number
相关问答
更多-
hadoop用python写的Map部分哪里有问题啊?[2022-04-26]
印象中是通过标准输入输出来实现数据的传递的。 另外需要一个东西连接hadoop 与python。就是通过标准输入输出连接。 那个东西本身将hadoop的api封装。 我估计可能原因有两个: 1.没有输入绝对路径。你用的是相对路径。这个可能不成。 2.你可能需要一个插件,连接HADOOP与python 看你的算法好象是在做协同过滤的准备工作。 这个协同过滤单机就可以跑得很快。几十分钟就算完了。 -
python写的程序能够在hadoop上跑吗[2021-07-13]
sudo apt-get install python-dev 一般安装系统的时候其实python已经自带了,这步基本可以不用做,OK,我们继续往下走吧,安装python-opencv ,稍后我们需要用到opencv的库,一行指令即可,这也是小编特别喜欢linux的原因: sudo apt-get install python-opencv 完成之后我们开始操作吧,首先同样的我们打开摄像头露个脸呗,不多说,上代码, vim pythonpractice.py 打开vim,copy以下代码即可(友情提示 py ... -
Python可以写Web应用程序么?[2023-07-09]
QUOTE:原帖由 准备早起的鸟 于 2007-10-27 22:57 发表 Python可以写Web应用程序么?好像行吧?哪位可以给偶个留言板或是记数器之类的小源码,研究一下。。谢谢。。最好是只操作文本的。。 Apache 有mod_python 模块, 支持用python开发Web App.当然也有一些python 写的的应用服务器,诸如Zope之类的.Python 的一个大好处是和C/C++结合得很好,用C/C++写扩展模块很容易,对于CPU时间敏感的部分可以用C/C++来开发. -
怎么用rstudio写python程序[2022-06-11]
PTVS(Python Tools for Visual Studio)是一个VS下的Python开发插件; 下载安装就可以直接使用了! -
用python 比较两个strings 是否相同, 忽略大小写程序怎么写。。[2019-05-13]
def astrcmp(str1,str2): return str1.lower()==str2.lower() -
谁可以帮我写一个python小程序?[2023-05-15]
import math #导入模块/库 for i in range(1,10): #for循环语句 print math.sin(i) #print 输出 for j in range(100): if j%2==0: #if 条件判断语句 print j,"是偶数" else: print j,"是奇数" data=[1,2,'c','d',5] #列表 print data[2] #列表索引,输出结果为c #循环、判断、列表等等,这是最基础的 -
用python写小程序[2021-09-29]
如果无需界面程序, 2楼回答的已经是一个阶梯思路了。 如果一定要界面,算法还是一样的,只不过需要在界面上多加点功夫。 -
python是如何写界面程序的?[2023-11-15]
看了你的问题,几个回答似乎都不完全对。 给你补充一下吧。
你的问题与flask基本上没有关系。flask是一个简单的微型编程框架,很优美,也很简单好用。不过它仅仅实现了基于HTTP协议的服务端交互部分。
一个界面设计除了服务端交互,还需要本地交互(用JS, flash实现),最重要的还是需要客户端界面(用HTML+CSS+JS实现)。文件上传需要(JQUERY+UPLOADFILE库)
从上面的回答看,你 ...
-
如何用python脚本语言写带窗口程序?[2022-06-22]
你可以选择一本python方面的书籍,一版教程上都有讲到python如何进行图形界面程序开发。 一般的python是通过使用图形界面库快速开发图形程序。库有好多种。教程里一般都有介绍。各有优缺点。 默认安装了python就自带一个图形界面库,那就是Tkinter。python的自带编辑器和shell解释器就是这个界面。 除此之外用得比较广的还有wxpython库,等等。这些可以到网上了解了解。教程也有得看。使用起来相当方便。 -
kafka - 可以将python程序连接到hadoop集群外的Kafka吗?(kafka - can python program connect to Kafka outside hadoop cluster?)[2023-12-03]
了解Kafka更多信息的最简单方法是使用http://landoop.com/docs/lenses/developers 您将需要运行1个docker - 在本地调出所有内容,然后开发Python应用程序,使用通过Kafka API连接到Kafka的相应Kafka库并向其生成消息 一旦你构建了你的应用程序 - 然后你可以打包它并对你的Hadoop的Kafka经纪人运行它 Easiest way to learn more about Kafka is to use http://landoop.com/d ...