dosya tabanlı birleştirme sıralama, Java sıralamak için herhangi bir kitaplık veya API var mı? , uygulamanın linux yardımcı programına benzer olması muhtemeldir.Java tabanlı büyük veri kümeleri verilen büyük veri kümeleri üzerinde Java
cevap
Java, sorununuz için daha büyük bir çözümün parçası olarak kullanılabilecek genel amaçlı bir sıralama yordamı sağlar. bellekteki tüm fit için çok büyük olduğunu verileri sıralamak için ortak bir yaklaşım şudur:
1) ana belleğe sığacak şekilde en o 1 Gb (o 1 Gb
2) Quicksort diyelim, fazla veri okuyun Eğer Koleksiyonları çerçevesinden Java'nın yerleşik tür) Eğer ettik kadar "yığın-1"
4) 1-3 adımlarını tekrarlayın olarak diske 1 Gb sıralanmış
3) Yazma kullanmayı tercih ediyorum nerede burada Tüm verilerden geçerek, her bir veri yığınını ayrı bir dosyada kaydedebilirsiniz. Eğer orijinal verileriniz 9 Gb ise, şimdi 9 sıralı "chunk-1" etiketli "chunk-9" etiketli veri parçasına sahip olacaksınız.
5) Artık 9 sıralı parçaları birleştirmek için son birleştirme sıralamalarına ihtiyacınız var. tamamen sıralanmış tek bir veri kümesine. Birleştirme sırası, bu önceden sıralanmış parçalara karşı çok verimli çalışacaktır. Temelde 9 dosya okuyucusu (her bir yığın için bir tane) artı bir dosya yazıcısı (çıktı için) açılacaktır. Daha sonra her bir okuma dosyasındaki ilk veri elemanını karşılaştırır ve çıktı dosyasına yazılan en küçük değeri seçer. Seçilen değerin geldiği okuyucunun bir sonraki veri elemanına ilerlemesi ve en küçük değeri bulmak için 9 yollu karşılaştırma işleminin tekrarlanması, yine çıktı dosyasına cevap yazılmasıdır. Bu işlem, tüm veriler tüm yığın dosyalarından okunana kadar tekrarlanır. 5. adım bitirdiniz tüm verileri okuma bittikten sonra
6) - çıktı dosyası şimdi tam Sıralanan veri bu yaklaşımla kolayca kendi genel bir "megasort" programı yazabilirsiniz ile
set içerir Bir dosya adı ve maxMemory parametresi alır ve temp dosyalarını kullanarak dosyayı verimli bir şekilde sıralar. Bahse girerim ki, bunun için en az birkaç uygulama bulabilirsin, ama eğer yapmazsan, sadece yukarıda açıklandığı gibi kendi kendine dönebilirsin.
Büyük veri kümelerini işlemenin en yaygın yolu bellektir (bu günlerde 1 TB'lık bir sunucu satın alabilirsiniz) veya bir veritabanında.
Bir veritabanı kullanmıyorsanız (veya daha fazla bellek satın alırsanız), kolayca kendiniz yazabilirsiniz.
Map-Reduce işlevlerini gerçekleştiren yardımcı olabilecek kütüphaneler vardır, ancak kaydettiklerinden daha fazla karmaşıklık ekleyebilirler.
- 1. Büyük veri kümeleri için do.call alternatifi
- 2. MySQLdb, büyük sonuç kümeleri
- 3. jQuery veri kümeleri bundleconfig?
- 4. Büyük veri tabloları üzerinde sorgulamalar
- 5. Sunucu tarafı simülasyonu için büyük veri kümeleri nasıl kullanılır -> istemci tarayıcısı
- 6. Köşeli veri kümeleri iç içe satırlar oluşturuluyor
- 7. dönen veri kümeleri REST/WCF hizmeti
- 8. JQuery veri kümeleri: virgülle sıra numarası çalışmıyor
- 9. Hesaplanan sütun değerlerini veri kümeleri veri modeline bağla
- 10. Büyük veri kümeleri için sql sunucusundan sqlite geçirmenin en hızlı yolu
- 11. Moq ile eşitleme kümeleri
- 12. Büyük veri dosyalarını IEnumerable
- 13. DC ve büyük veri setleri
- 14. Grafik.js için dinamik olarak veri kümeleri nasıl oluşturulur?
- 15. Taşıma Mysql Dairesel mekansal veri kümeleri Elovel ORTA
- 16. VMware perl sdk ile küme veri kümeleri nasıl alınır?
- 17. Veri kümeleri arasındaki benzerlik yüzdesini hesaplamanın etkili yolu
- 18. jQuery veri kümeleri içinde AngularJS gözlemcileri kullanmak için yaklaşım nedir
- 19. Jupyter Notebook üzerinde ipyparallel kümeleri oluşturulamaz
- 20. İki büyük veri kümesini RxJava
- 21. Büyük veri kümesinde işlemler gerçekleştirme
- 22. Clojure performansı, büyük vektörler üzerinde büyük döngü
- 23. (p) COMPSs kümeleri
- 24. yinelenen kümeleri r
- 25. JdbcTemplate çoklu sonuç kümeleri
- 26. java: büyük dosyalar mı yazıyor?
- 27. Java: büyük dosyalarda regex değişimi
- 28. H5py kullanarak büyük bir hdf5 veri kümesi yazma
- 29. Oracle SQL: Kesişen kümeleri için
- 30. Büyük Veri arules paketindeki "transaction" işlemine dönüştü
Bu yöntemle ve Java kodu da dahil olmak üzere bir makale buldum: http://www.codeodor.com/index.cfm/2007/5/10/Sorting-really-BIG-files/1194 – Franck