Co to jest dobry algorytm do sortowania plików tekstowych, które są większe niż dostępna pamięć (wiele 10 gigabajtów) i zawierają rekordy o zmiennej długości? Wszystkie algorytmy, które widziałem, zakładają 1) dane mieszczą się w pamięci lub 2) rekordy mają stałą długość. Ale wyobraźmy sobie duży plik CSV, który chciałem rozwiązać przez „Data urodzenia” pola (pole 4.):Algorytm sortowania: plik dużego tekstu z liniami o zmiennej długości (wartości rozdzielane przecinkami)
Id,UserId,Name,BirthDate
1,psmith,"Peter Smith","1984/01/01"
2,dmehta,"Divya Mehta","1985/11/23"
3,scohen,"Saul Cohen","1984/08/19"
...
99999999,swright,"Shaun Wright","1986/04/12"
100000000,amarkov,"Anya Markov","1984/10/31"
wiem, że:
- będzie to działać na jeden komputerze (nie Rozpowszechniane).
- Maszyna, na której działałbym, miała kilka procesorów.
- Pliki, które będę sortował, mogą być większe niż pamięć fizyczna urządzenia.
- Plik zawiera linie o zmiennej długości. Każda linia składa się ze stałej liczby kolumn (wartości oddzielone separatorami). Plik zostanie posortowany według określonego pola (tj. 4. pola w pliku).
- Idealne rozwiązanie prawdopodobnie "użyje tego istniejącego narzędzia do sortowania", ale szukam najlepszego algorytmu .
- Nie oczekuję w pełni zakodowanej, działającej odpowiedzi; coś więcej na wzór "sprawdź to, oto jak działa, lub tutaj, dlaczego działa dobrze dla tego problemu." Po prostu nie wiem, gdzie szukać ...
- To nie jest praca domowa!
Dzięki! ♥