bardzo podoba mi się budowąScala - Iterator na wszystkich liniach w plikach w katalogu
for (line <- Source fromFile inputPath getLines) {doSomething line}
dla iteracji nad plikiem w Scala i zastanawiam się, czy istnieje sposób, aby wykorzystać konstrukcję podobną do iteracji przez linie we wszystkich plikach w katalogu.
Istotnym ograniczeniem jest tutaj to, że wszystkie pliki sumują się do ilości miejsca, która spowodowałaby przepełnienie sterty. (myślę, że kilkadziesiąt GB, więc zwiększanie wielkości sterty nie jest opcją). Jak na razie pracuję nad tym, próbowałem każdego razem w jeden plik i używając powyższej konstrukcji, która działa b/c lenistwa.
Sytuacja, która wydaje się rodzić pytania typu .. czy mogę połączyć dwa (sto) leniwych iteratorów i uzyskać naprawdę duży, naprawdę leniwy?
To jest idealne, właśnie pobrałem około 10 gb plików przy użyciu repliki scala z bitem kodu opartym na tym, a użycie pamięci ledwo zniesione. Dzięki wielkie! –
Należy jednak zauważyć, że 'Source' dla każdego pliku nie jest zamykany. W tym konkretnym przypadku, gdy kod może dotykać setek plików, ważne jest użycie pewnego rodzaju ARM. –