Advertisement

应用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)

还没有任何评论哟~