Şu anda, HDFS'YE MAĞAZAMAK, birçok parça dosyası oluşturuyor.STORE çıkışı tek bir CSV'ye mi?
Tek bir CSV dosyasına depolamanın bir yolu var mı?
Şu anda, HDFS'YE MAĞAZAMAK, birçok parça dosyası oluşturuyor.STORE çıkışı tek bir CSV'ye mi?
Tek bir CSV dosyasına depolamanın bir yolu var mı?
birkaç şekilde yapabilirsiniz:
Eğer default_parallel
özelliğini kullanabilirsiniz, tüm Domuz opeations reduktörler sayısını ayarlamak için - ama bu her adımı tek redüktör kullanın anlamına gelir, azalan verim:
set default_parallel 1;
işlemlerinden biridir yürütme, önce çağrı saklamak için, (COGROUP, ÇAPRAZ, ayn grubuna katılması (iç),(), dış ve Yazan) daha sonra, sen c PARALLEL 1
anahtar kelimenin tek redüktör kullanımını göstermek için bir kullanım bu komutu tamamlamak için:
GROUP a BY grp PARALLEL 1;
fazla bilgi için Pig Cookbook - Parallel Features bakın
Ayrıca tüm bu birleştirmek için Hadoop en getmerge komutunu kullanabilirsiniz bölüm- * dosyaları. Bu yalnızca, Pig komut dosyalarınızı Pig kabuğundan (Java'dan değil) çalıştırırsanız mümkündür. önerilen çözüm üzerinde bir avantaj olarak
Bu
: işinizi daha hızlı çalışabilir, böylece yine, verilerinizi işlemek için özellikle her redüktör çıkış birkaç Verilere farklı düşürücüler kullanabilirsiniz olarak.grunt> fs -getmerge <Pig output file> <local file>
Büyük şeyler, Chris, teşekkürler! – JasonA
Bunun çok ideal olduğunu düşünmüyorum, çünkü büyük çıkış verilerinde çok az redüktörle bellek hatasından kurtulursunuz. – FreeTymeKiyan