PHP/Shell大文件数据统计并且排序
本文章来给各位同学介绍一个简单的PHP/Shell大文件数据统计并且排序实现程序,各位同学可参考使用哦。
诸多大互联网公司的面试都会有这么个问题,有个4G的文件,如何用只有1G内存的机器去计算文件中出现次数做多的数字(假设1行是1个数组,例如QQ号码)。如果这个文件只有4B或者几十兆,那么最简单的办法就是直接读取这个文件后进行分析统计。但是这个是4G的文件,当然也可能是几十G甚至几百G的文件,这就不是直接读取能解决了的。
同样对于如此大的文件,单纯用PHP做是肯定行不通的,我的思路是不管多大文件,首先要切割为多个应用可以承受的小文件,然后批量或者依次分析统计小文件后再把总的结果汇总后统计出符合要求的最终结果。类似于比较流行的MapReduce模型,其核心思想就是“Map(映射)”和“Reduce(化简)”,加上分布式的文件处理,当然我能理解和使用到的只有Reduce后去处理。
假设有1个10亿行的文件,每行一个6位-10位不等的QQ号码,那么我需要解决的就是计算在这10亿个QQ号码中,重复最多的前10个号码,使用下面的PHP脚本生成这个文件,很可能这个随机数中不会出现重复,但是我们假设这里面会有重复的数字出现。
代码如下 | 复制代码 |
$fp = fopen('qq.txt','w+'); |
生成文件的世界比较长,Linux下直接使用php-client运行PHP文件会比较节省时间,当然也可以使用其他方式生成文件。生成的文件大约11G。
然后使用Linux Split切割文件,切割标准为每100万行数据1个文件。
代码如下 | 复制代码 |
split -l 1000000 -a 3 qq.txt qqfile |
qq.txt被分割为名字是qqfileaaa到qqfilebml的1000个文件,每个文件11mb大小,这时再使用任何处理方法都会比较简单了。我还是使用PHP进行分析统计:
代码如下 | 复制代码 |
$results = array(); |
这样每个样本取前10个,最后放到一起分析统计,不排除有个数在每个样本中都排名第11位但是总数绝对在前10的可能性,所以后面统计计算算法还需要改进。
也许有人说使用Linux中的awk和sort命令可以完成排序,但是我试了下如果是小文件还可以实现,但是11G的文件,不管是内存还是时间都无法承受。下面是我改的1个awk+sort的脚本,或许是写法有问题,求牛人指导。
代码如下 | 复制代码 |
awk -F '\@' '{name[$1]++ } END {for (count in name) print name[count],count}' qq.txt |sort -n > 123.txt |
互联网几何级增长,未来不管是大文件处理还是可能存在的大数据都存在很大的需求空间

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











비트 코인 시장의 빠른 발전으로 신뢰할 수있는 거래 소프트웨어를 선택하는 것이 중요합니다. 이 기사는 효율적이고 안전하게 거래 할 수 있도록 2025 년 Top Ten Bitcoin Trading 소프트웨어를 권장합니다. 이 소프트웨어는 엄격하게 스크리닝되었으며 기능, 보안, 사용자 친화 성 및 지원 수준과 같은 요소를 고려합니다. 초보자 친화적 인 플랫폼에서 경험이 풍부한 거래자를위한 복잡한 도구에 이르기 까지이 목록에서 거래 요구에 가장 적합한 옵션을 찾을 수 있습니다.

이 안내서는 통화 서클의 필수 소프트웨어 도구에 대한 개요를 제공하여 사용자가 암호화 자산을보다 효율적으로 관리하고 거래 할 수 있도록 도와줍니다. 이 소프트웨어는 거래 플랫폼에서 분석 도구 및 보안 솔루션에 이르기까지 다양한 범주를 다룹니다. 이 안내서는 사용자가 2025 년에 다가오는 암호 시장을 준비 할 수 있도록 설계되었습니다.

Gateio Exchange 앱은 공식, 제 3 자 애플리케이션 시장, 포럼 커뮤니티 및 기타 채널을 다루는 기존 버전의 채널을 다운로드합니다. 또한 기존 버전을 쉽게 얻고 새로운 버전 또는 장치 호환성을 사용하여 불편 함 문제를 해결하는 데 도움이됩니다.

실시간 비트 코인 USD 가격 비트 코인 가격에 영향을 미치는 요인 향후 비트 코인 가격을 예측하기위한 지표 다음은 2018-2024 년 비트 코인 가격에 대한 몇 가지 주요 정보입니다.

가상 통화 거래에 종사하는 사람들에게는 훌륭한 시장 시청 소프트웨어를 선택하는 것이 중요합니다. 이 기사는 독자들에게 가장 유명한 10 가지 가상 환전 교환 시청 소프트웨어를 소개하여 정보에 입각 한 선택을 할 수 있도록하는 것을 목표로합니다. 이 소프트웨어는 실시간 인용문, 기술 분석 도구, 차트 및 사용자 정의 경고를 포함하여 다양한 트레이더의 요구를 충족시키는 다양한 기능을 제공합니다. 숙련 된 전문가이든 초보자이든,이 기사는 거래 스타일에 가장 적합한 시청 소프트웨어를 찾는 데 도움이되는 귀중한 통찰력을 제공합니다.

H5 및 Mini 프로그램의 홍보 방법에는 차이가 있습니다. 플랫폼 의존성 : H5는 브라우저에 의존하고 미니 프로그램은 특정 플랫폼 (예 : WeChat)에 의존합니다. 사용자 경험 : H5 경험이 좋지 않으며 MINI 프로그램은 기본 응용 프로그램과 유사한 원활한 경험을 제공합니다. 커뮤니케이션 방법 : H5는 링크를 통해 퍼지고 미니 프로그램은 플랫폼을 통해 공유하거나 검색됩니다. H5 프로모션 방법 : 소셜 공유, 이메일 마케팅, QR 코드, SEO, 유료 광고. 미니 프로그램 프로모션 방법 : 플랫폼 프로모션, 소셜 공유, 오프라인 프로모션, ASO, 다른 플랫폼과의 협력.

Ouyi Okx Trading Platform의 공식 입구를 완전히 이해하십시오. Ouyi OKX 거래 플랫폼 사용의 실시간 모니터링 Ouyi OKX 거래 플랫폼의 보안 보증 및 개발 계획에 대한 심도있는 토론

포괄적 인 강도를 가진 많은 교환 플랫폼이 디지털 자산 거래 분야에서 등장했습니다. 그중에서도 OKX, Binance 및 Huobi는 강력한 기술 강점, 완전한 보안 보증 및 풍부한 제품 라인을 통해 업계 벤치 마크가되었습니다. 2013 년에 설립 된 OKX는 강력한 기술 팀을 보유하고 있으며 개발 된 고성능 거래 엔진 및 보안 시스템은 사용자의 거래 경험을 보장합니다. Binance는 세계에서 가장 큰 거래량으로 유명합니다. Huobi는 수년 동안 업계에 깊이 관여 해 왔으며 글로벌 레이아웃과 준수하는 운영은 신뢰할 수있는 거래 환경을 제공합니다.
