外部排序算法实现。
ext-sort的Python项目详细描述
外部排序算法实现。外部排序是一类能够处理大量 数据量当被排序的数据不适合主存储器(RAM)时,需要外部排序 计算机必须放在较慢的外部存储器中,通常是硬盘驱动器。 分两次分拣在第一次传递过程中,它对每个内存中的数据块进行排序, 在第二次传递过程中,它将已排序的块合并在一起。 有关详细信息,请参见https://en.wikipedia.org/wiki/External_sorting。
相容性
ext sort需要3.6+
安装
您可以使用pip:
安装ext sort$ pip install ext-sort
快速启动
快速启动
importcsvimportioimportloggingimportext_sortasesclassCSVSerializer(es.Serializer):def__init__(self,writer):super().__init__(csv.writer(io.TextIOWrapper(writer,write_through=True)))defwrite(self,item):returnself._writer.writerow(item)classCSVDeserializer(es.Deserializer):def__init__(self,reader):super().__init__(csv.reader(io.TextIOWrapper(reader)))defread(self):returnnext(self._reader)logging.basicConfig(level=logging.DEBUG,format='[%(levelname)-8s] %(asctime)-15s (%(name)s): %(message)s',)withopen('/home/user/data.csv','rb')asunsorted_file,open('/home/user/data.sorted.csv','wb')assorted_file:# save the csv headersorted_file.write(unsorted_file.readline())es.sort(reader=unsorted_file,writer=sorted_file,chunk_size=10_000_000,Serializer=CSVSerializer,Deserializer=CSVDeserializer,workers_cnt=4,)