利用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 zip文件 压缩
Dec 24 Python
python通过urllib2爬网页上种子下载示例
Feb 24 Python
Python中字符串的处理技巧分享
Sep 17 Python
DataFrame中的object转换成float的方法
Apr 10 Python
python监控进程脚本
Apr 12 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
python添加菜单图文讲解
Jun 04 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
Python 如何定义匿名或内联函数
Aug 01 Python
Python入门基础之数字字符串与列表
Feb 01 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
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
Python专用方法与迭代机制实例分析
2014/09/15 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
七一表彰活动方案
2014/01/18 职场文书
幼儿园运动会入场词
2014/02/10 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
公司节能减排方案
2014/05/16 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
户籍证明书标准模板
2014/09/10 职场文书
单位计划生育责任书
2015/05/09 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书