hadoop平台使用python编写mapreduce二次排序小程序

Python Hadoop Mapreduce 实现Hadoop Streaming分组和二次排序 需求:公司给到一份全国各门店销售数据,要求:1.按门店市场分类,将同一市场的门店放到一起;2.将各家门店按销售额从大到小,再按利润从大到小排列 一 需求一:按市场对门店进行分组 分组(partition) Hadoop streaming框架默认情况下会以’/t’作为分隔符,将每行第一个’/t’之前的部分作为key,其余内容作为value, 如果没有’/t’分隔符,则整行作为key;这个key/v... 阅读详情

接上一个博文的环境
使用的是官网的专利使用数据,这里只截取了一部分

3858241,956203
3858241,1324234
3858241,3398406
3858241,3557384
3858241,3634889
3858242,1515701
3858242,3319261
3858242,3668705
3858242,3707004
3858243,2949611
3858243,3146465
3858243,3156927
3858243,3221341
3858243,3574238
3858243,3681785
3858243,3684611
3858244,14040
3858244,17445

mapper.py

  1 #!/usr/bin/env python
  2 import sys
  3 list1=[]
  4 for line in sys.stdin:
  5     line=line.strip()
  6     words = line.split("\n")
  7     list1.append(words[0])
  8 for x in xrange(len(list1)):
  9     print list1[x]

reducer.py

1 #!/usr/bin/env python
  2 from operator import itemgetter
  3 import sys
  4 dick1={}
  5 for line in sys.stdin:
  6     words = line.split("\n")
  7     if words[0][0]=='\t':
  8         continue
  9     else:
 10 
 11         word =words[0].split(",")
 12 #        print word[1]
 13 #        print "%s\t%s" % (word[0],word[1])     
 14         if str(word[0]) in dick1:
 15             dick1[word[0]].append(int((word[1].split("\t"[0]))[0]))
 16         else:
 17             dick1[word[0]]=[int((word[1].split("\t"[0]))[0])]
 18 for one in dick1:
 19     dick1[one].sort()  #进行单个键内对多个值的排序
 20 dick2=sorted(dick1.items(), key=lambda d:d[0], reverse = False)   #进行键的排序
 21 for one in dick2:
 22     print one

输出结果

[hadoop@mylab-client py]$ hadoop fs -cat out/part-00000
('3858241', [956203, 1324234, 3398406, 3557384, 3634889])   
('3858242', [1515701, 3319261, 3668705, 3707004])   
('3858243', [2949611, 3146465, 3156927, 3221341, 3574238, 3681785, 3684611])    
('3858244', [14040, 17445, 2211676])    
[hadoop@mylab-client py]$ 

再进行格式化输出即可

hadoop2.7运行python编写的wordcount的MapReduce程序 前言 一般来说,在学习某个新技术之前,都会写一个Hello World!的小程序,这个程序简单但是包含了一个程序所必须具备的一切。MapReduce程序也有自己的Hello World,那即是Word Count。 在学习用python编写word count的过程中,遇到了许多坑,网上许多教程都过时了或者版本不对,许多基于python的word count教程都是转载自或者翻译自这片文章ht... 阅读详情

相关推荐

MapReduce二次排序(secondary sort)实战

接触过mapreduce的同学都知道,为了将key值相同的record放在一起,分配给指定reducer,shuffle阶段会按照key值排序。 然而在某些情况下,我们需要同时对value排序,A同学立马提出了如下解决方案:reduce的时候,将同一个key的所有value都存在一个list中,最后再进行排序,这个方案在数据量小时没有问题,可是reducer的内存是有限的,当数据规模很大时,

Drowning in stream 2424

python部署到hadoop上_python实现mapreduce(2)——在hadoop中执行

目的:将python实现mapreduce(1)中的python脚本部署到hadoop上,实现mapreduce。1. 修改脚本执行权限[tianyc@TeletekHbase ~]$ which python/usr/bin/python#将 #!/usr/bin/python 加到map.py和red.py的第一行,并设置执行权限。[tianyc@TeletekHbase python]$ c...

weixin_39973196的博客 228

Hadoop(三)通过C#/python实现Hadoop MapReduce

🚀 优质资源分享 🚀 学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 目录 MapReduce MapReduce过程 Hadoop Streaming Hadoop streaming处理步骤 C#版MapReduce Pyt

qq_45562973的博客 2435

hadoop学习笔记:使用Python写Hadoop MapReduce程序

用python写MapReduce函数——以WordCount为例

weixin_41555165的博客 1813

Python+hadoop Streaming编写的Map-Reduce程序与调试运行

Hadoop的 Streaming介绍       Hadoop本身是用Java开发的,程序也需要用Java编写,但是通过Hadoop Streaming,可以使 用任意语言(python、ruby、C++等)来编写程序,让Hadoop运行。     Hadoop提供了MapReduce的API,并允许使用非java的其他语言来写自己的map和reduce函数。而Streaming使用Unix

Angelasan的专栏 3023

python写hadoop的MapReduce(以数据按要求合并、重排为例)

现在已有的很多博客demo都是以wordcount为例,众所周知这是一个非常简单的功能,但凡遇到一些高阶一点的操作我都会大脑一片空白,今天正好有相关的需求,就来学习了一下。 http://www.zhangdongshengtech.com/article-detials/236 上面的链接是记录频次的demo,写的非常的好,相信各位看了它就会了解mapreduce核心的写法 目录Intro:wo...

chutongz的博客 2860

【算法二排序--python】

堆的向下调整:假设节点的左右子树都是堆,但是自身不是堆。可以通过一次向下调整将其变换成一个堆。(逐步将左右子树中的最大的元素向上移动,遇到左右子树的节点都比该节点小,将该节点填补在此处)3、去掉堆顶,将堆的最后一个元素放到堆顶,此时可以通过一次调整(堆的向下调整)重新使堆有序。(从最后一个非叶子节点开始使用堆的向下调整构建堆)python内置函数(内部使用的是顺序查找方法):sort()。大根堆:一个完全二叉树,满足任意节点都比其孩子节点大。小根堆:一个完全二叉树,满足任意节点都比其孩子节点小。

qq_44572656的博客 379

Python实现双重排序算法——Double Sort

双重排序,顾名思义有两个排序的过程。一般情况下,第一次排序按照某一关键字进行排序,第二次对相同的关键字进行次要排序,从而获得更为准确的排序结果。代码中使用了Python语言自带的sort函数对主关键字进行排序,并根据值相同的元素进行分组;本文介绍了Python如何实现双重排序算法的过程,并提供了完整的源代码,供读者参考。结果表明,按年龄主关键字排序,年龄相同时按姓名次关键字排序,得到了正确的排序结果。本文将介绍Python实现双重排序算法的过程,并附上完整源码。3) 对每个组内的数据进行次关键字的排序。

qq_39605374的博客 973

Python中的sort()方法使用基础

一、基本形式 sorted(iterable[, cmp[, key[, reverse]]]) iterable.sort(cmp[, key[, reverse]]) 参数解释: (1)iterable指定要排序的list或者iterable,不用多说; (2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如: stu...

weixin_30552635的博客 1万+

hadoop运行python编写的mapreduce程序

利用hadoop-streaming框架运行python脚本指令

1.2 重叠因子:双重指数移动平均(Double Exponential Moving Average, DEMA)概念与Python实战

双重指数移动平均(Double Exponential Moving Average, DEMA)是一种改进的移动平均线指标,由Patrick Mulloy在1994年开发。相比传统的指数移动平均线(EMA),DEMA通过减少滞后性来提供更快的市场反应。它通过两次计算EMA并进行特殊组合来实现这一目标,可以在保持平滑性的同时减少滞后。

Kewin的博客 2168

hadoop平台使用python编写mapreduce排序小程序

编写环境hadoop-2.6.5 python-2.7.5 xshell连接 金山云平台,一台master,3台selvet数据类型g 445 a 1117 b 222 c 333 d 444 e 123 f 345 h 456map.py 1 #!/usr/bin/env python 2 import sys 3 list1=[] 4 for line in sys.stdi

云计算学渣 3735

倾向得分匹配的stata命令_政策评估方法引荐|广义倾向得分匹配(GPSM)

和大家分享一下最近学习的进展,在痛苦读完stata journal和练习OA程序,已经可以基本完成广义倾向得分的估计了,在国内这一方法还没有形成广泛运用,因此学习资源也是有点稀缺的,在文章最后给各位提供数据和代码以供练习。有问题可以随时文末留言或者联系我哦。人文社会科学中一般无法在实验室中控制样本个体的特征,我们一般采用“准自然实验”的研究路径,也就是不随机安排样本接受处理与否。但放弃随机分组假定...

weixin_39550258的博客 1万+

使用python语言编写Hadoop Mapreduce程序

它将从STDIN读取mapper.py的结果(故mapper.py的输出格式和reducer.py预期的输入格式必须匹配),然后统计每个单词出现的次数,最后将结果输出到STDOUT中。这是因为在不同操作系统上编辑的文件可能使用不同的换行符格式,为了确保在Unix/Linux环境中正确解释脚本,可能需要将其转换为正确的格式。是一个用于转换文本文件格式的工具,将DOS或Windows格式的文本文件(带有CRLF换行符)转换为Unix/Linux格式的文本文件(带有LF换行符)。

qq_64455589的博客 2804

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 960

LSF实践专题(15):LSF队列优先级以及抢占功能初探

在LSF暂停作业时,会向作业发送一个SIGTSTP信号,并且将作业状态变成SSUSP(system suspend),表示被系统暂停,这时,最好是作业的应用能够捕获和处理SIGTSTP信号,否则,即使在LSF中,作业会被认为暂停了,并且释放了slots资源,但是在实际OS中,作业进程仍然在继续,并且不会释放CPU等计算资源。是指LSF自动将低优先级作业暂停(suspend),将空余出来的资源交给高优先级队列中的作业使用,等到高优先级队列的作业结束后,再将被暂停的作业恢复(resume)并继续运行。

richycn的博客 1919

python 实现Hadoop的partitioner和二次排序

python 实现Hadoop的partitioner和二次排序

龙神add-走向数据架构师的路 1239

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 926

在hadoop平台运行python代码的mapreduce的程序——排序

在hadoop平台运行python代码的mapreduce的程序——排序

weixin_44323744的博客 548

《QGIS快速入门与应用基础》294:双地图框布局(真彩色+假彩色对比)

摘要 本文详细介绍了在QGIS中创建专业级遥感影像对比地图的完整流程。作者作为时空智能领域专家,重点讲解了双地图框布局的实现方法,通过真彩色与假彩色影像的同步对比,满足学术研究和工程应用需求。文章包含三个核心部分:1) 前期准备工作,包括图层复制、标准化命名和参数校验;2) 布局创建与页面设置,详细说明了A4横向布局的参数配置;3) 双地图框同步技术,提供了复制粘贴法和手动设置两种实现方案。教程特别强调图层锁定、比例尺固定等关键操作,确保对比图的专业性和准确性,适合GIS从业人员和遥感研究者学习参考。

LuckyHanMo的博客 358

Python 爬虫实战:爬取去哪儿网酒店评价,提取住宿体验关键词

本文介绍了基于去哪儿网酒店评价数据的爬取与分析方法。首先通过分析网页结构和数据加载机制,定位到评价数据的JSON接口及关键参数。然后使用Python搭建爬虫环境,实现多页评价数据的批量采集与存储,并通过反爬策略确保数据获取的稳定性。在文本分析环节,采用jieba分词和TF-IDF算法提取高频关键词,结合词云可视化展示用户关注点。分析结果显示位置、服务、卫生是核心关注维度,同时识别出好评与差评的关键驱动因素。该方法为酒店服务优化和消费者决策提供了数据支持,并可通过扩展实现更深入的情感分析和竞品对比。

2503_91057718的博客 999

python 实现hadoop的mapreduce

为了用python实现mapreduce,我们先引入下面两个个知识 sys.stdin() itertools之groupby sys模块的简单学习 sys.stdin 是一个文件描述符,代表标准输入,不需使用open函数打开,就可以使用 例如下面的简单程序 # coding=utf-8 import sys for line in sys.stdin: print...

gg0124的博客 1216

36、T5L 迪文屏C51开发之绘制动态曲线

T5L 迪文屏C51开发之绘制动态曲线1、介绍2、例程功能简介3、GUI界面设计3、C51程序设计 1、介绍   本文将利用DGUS Tool软件中的【动态曲线控件】来绘制曲线效果,在T5L迪文屏中总共支持8个通道的曲线,而曲线数据是需要缓冲区的,如果 8 通道曲线同时使用,0x1000-0x4FFF 将作为曲线缓冲区地址,此时该部分变量地址不能被其他控键使用,其他控键地址使用范围为0x5000-0xFFFF,当某曲线通道不被使用时,那么其所对应的缓冲区地址可以做其他用途,曲线通道具体的地址分布如下图所示:

嵌入式羊圈 3131

使用python实现Hadoop中MapReduce

Hadoop包含HDFS(分布式文件系统)、YARN(资源管理器)、MapReduce(编程模型)。

qq_44801116的博客 1280

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

采用python编写MapReduce程序

采用python编写mapreduce程序。

pzy0668的专栏 1858

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: hadoop平台使用python编写mapreduce排序小程序
下一篇: python 字典中文key处理,读取,比较
马里奥赛德
博客等级 码龄11年 79粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值