利用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基础教程之元组操作使用详解
Mar 25 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
对dataframe进行列相加,行相加的实例
Jun 08 Python
python 自定义对象的打印方法
Jan 12 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python字符串替换re.sub()方法解析
Sep 18 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
python 下划线的不同用法
Oct 24 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
Python 如何解决稀疏矩阵运算
May 26 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
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
php格式文件打开的四种方法
2018/02/24 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
浅析vue中的MVVM实现原理
2019/03/04 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
python根据文件大小打log日志
2014/10/09 Python
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python过滤列表用法实例分析
2016/04/29 Python
Python批量查询域名是否被注册过
2017/06/21 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
TensorFlow实现Logistic回归
2018/09/07 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python requests库的使用
2021/01/06 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
个人党性剖析材料
2014/02/03 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
2016情人节宣传语
2015/07/14 职场文书
浅谈Python协程asyncio
2021/06/20 Python
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫