利用python如何处理百万条数据(适用java新手)


Posted in Python onJune 06, 2018

1、前言

因为负责基础服务,经常需要处理一些数据,但是大多时候采用awk以及java程序即可,但是这次突然有百万级数据需要处理,通过awk无法进行匹配,然后我又采用java来处理,文件一分为8同时开启8个线程并发处理,但是依然处理很慢,处理时长起码在1天+所以无法忍受这样的处理速度就采用python来处理,结果速度有了质的提升,大约处理时间为1个小时多一点,这个时间可以接受,后续可能继续采用大数据思想来处理,相关的会在后续继续更新。

2、安装python 

第一步首先下载python软件,在官网可以根据自己情况合理下载,大家也可以通过三水点靠木进行下载其余就是下一步搞定,然后在开始里面找到python的exe,点击开然后输入1+1就可以看出是否安装成功了.如下图

利用python如何处理百万条数据(适用java新手) 

3、IEDA编辑器如何使用python

首先我们在idea中打开设置然后点击plugins,在里面有个输入框中输入python,根据提示找到如下的这个(idea版本不同可能影响python版本)

利用python如何处理百万条数据(适用java新手) 

然后开始创建idea工程

file->New->Project->python然后出现如下图情况(其他的下一步然后就会创建工程了)

利用python如何处理百万条数据(适用java新手)

4、开发前知识准备

文件的读取,python读取文件非常的简单,我现在直接贴代码提供给大家

def readData(fileName):
 result = ""
 count=0
 with open(fileName, 'r') as f:
 for line in f.readlines():
  result += line
  count += 1
  print count
 return result

"""写入文件"""

def writeData(fileName, data):
 with open(fileName, 'a+')as f:
 f.write(data)

其中def是函数的定义,如果我们写定义一个函数直接前面加上def,返回值可以获取后直接用return即可

python我们直接采用with open('文件路径',模式) as f的方式来打开文件

模式:

r 只读 文件不存在则出错
r+ 支持读写 文件不存在则出错,写入时,会覆盖源文件
w 只写 如果文件不存在则创建文件,会覆盖源文件,如果写入内容少则保留为覆盖的内容
w+ 支持读写 同上
a 只写 如果文件不存在则创建文件,会采用追加模式
a+ 读写 同上
b 二进制读写  

跨文件引用:

同一个层级python是采用import直接导入文件名的方式,看下一个代码

import IoUtils

fileName1 = 'D:\\works\\pythons\\files\\userids.txt'
userIds = IoUtils.readData(fileName1).split('\n')
fileName2 = 'D:\\works\\pythons\\files\\records.txt'
records = IoUtils.readData(fileName2).strip()
recordsArr = records.split('\n')
count=0;
for data in recordsArr:
 count+=1
 if data.split('\t')[2] in userIds:
 IoUtils.writeData('D:\\works\\pythons\\files\\20180604.txt', data + '\n')
 print count

其他说明:

其中split和java程序的split一样,strip是去掉空格换行符等,循环(for in)模式,判断某个元素是否在数组中存在则直接使用 元素 in 数组

5、总结

如果你有数据量级别在百分的时候我建议优先可以想到python处理真的特别方便,而且很简单学习成本也很低,但是却很实用,其实awk在数据处理中也发挥很大的作用,大家可以私下学习,如果有时间我会分享一些,关于数据我这里就不提供了大家可以按照我上述代码跑就可以,更细节的我推荐看廖雪峰的python教程。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python检测某个变量是否有定义的方法
May 20 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
聊聊Python中的pypy
Jan 12 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
python实现滑雪者小游戏
Feb 22 Python
Python如何对XML 解析
Jun 28 Python
Django日志及中间件模块应用案例
Sep 10 Python
基于 Python 实践感知器分类算法
Jan 07 Python
python实现批量移动文件
Apr 05 Python
Python基础之条件语句详解
Jun 16 Python
Python3实现的Mysql数据库操作封装类
Jun 06 #Python
python操作redis方法总结
Jun 06 #Python
目前最全的python的就业方向
Jun 05 #Python
python多进程提取处理大量文本的关键词方法
Jun 05 #Python
使用python进行文本预处理和提取特征的实例
Jun 05 #Python
python 用正则表达式筛选文本信息的实例
Jun 05 #Python
python和shell获取文本内容的方法
Jun 05 #Python
You might like
屏蔽浏览器缓存另类方法
2006/10/09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php分页示例分享
2014/04/30 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
详解python基础之while循环及if判断
2017/08/24 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
Python根据成绩分析系统浅析
2019/02/11 Python
Python安装whl文件过程图解
2020/02/18 Python
Python新手学习函数默认参数设置
2020/06/03 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
给校长的建议书400字
2014/05/15 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
钢琴师观后感
2015/06/12 职场文书
2015小学师德工作总结
2015/07/21 职场文书
运动会开幕式致辞
2015/07/29 职场文书