应用Python处理海量数据排序
发布时间
阅读量:
阅读量
需求背景分析
我们需要处理一个约100G的数据集,并希望依据特定关键词进行排序。最初设想是直接通过数据库查询时使用order by语句完成排序,但该方法导致内存溢出。因此,决定将数据导出后,借助Python程序实现排序操作。
算法设计
将100G的文件通过分割、排序及合并的步骤处理,具体操作为将其划分为40个各2.5G的数据文件,对每个文件单独进行排序后实施归并操作,其核心理念与解决leetcode中合并多个有序数组问题的思路高度一致。
归并代码
import glob
import heapq
if __name__ == '__main__':
csv_list = glob.glob('./csv/*.csv')
print('find %s CSV files'% len(csv_list))
# if csv file less than 2,we don't need to merge, exit the script
if len(csv_list) < 2:
return 0
# open csv file, store the file_handler
print('processing.....
全部评论 (0)
还没有任何评论哟~
