HDFS'de bir dizin dizinim var ve dizinler üzerinde yinelemek istiyorum. SparkContext nesnesini kullanarak Spark ile bunu yapmanın kolay bir yolu var mı?Kıvılcım yinelemeli HDFS dizini
cevap
org.apache.hadoop.fs.FileSystem
'u kullanabilirsiniz. Özellikle,
Ve Spark ile FileSystem.listFiles([path], true)
...
FileSystem.get(sc.hadoopConfiguration()).listFiles(..., true)
Mükemmel, teşekkürler. – Jon
gerçekten güzel! [Bu soruyu aldım] (http://stackoverflow.com/questions/34738296/spark-spark-submit-jars-arguments-wants-comma-list-how-to-declare-a-directory/35550151#35550151), Bu, orijinal kıvılcım gönderme çağrısında işe yaramaz sanırım – JimLohse
Bu, oluşturduğu RemoteIterator'ı kullanarak dosyaların bir listesini nasıl oluşturabilirim? – horatio1701d
import org.apache.hadoop.fs.{FileSystem,Path}
FileSystem.get(sc.hadoopConfiguration).listStatus(new Path("hdfs:///tmp")).foreach(x => println(x.getPath))
Bu benim için çalıştı.
Kıvılcım sürümü 1.5.0-cdh5.5.2
val listStatus = org.apache.hadoop.fs.FileSystem.get(new URI(url), sc.hadoopConfiguration).globStatus(new org.apache.hadoop.fs.Path(url))
for (urlStatus <- listStatus) {
println("urlStatus get Path:"+urlStatus.getPath())
}
:
hadoop = sc._jvm.org.apache.hadoop
fs = hadoop.fs.FileSystem
conf = hadoop.conf.Configuration()
path = hadoop.fs.Path('/hivewarehouse/disc_mrt.db/unified_fact/')
for f in fs.get(conf).listStatus(path):
print f.getPath()
Bu Özellikle case disc_mrt.unified_fact Hive tablosunu oluşturan tüm dosyaların listesini alırım.() Dosya boyutunu almak için buraya açıklanan getLen gibi FileStatus nesnesinin
diğer yöntemler:
- 1. Yerel sistemden dizini hdfs java koduna kopyalama
- 2. . Hdfs dizindeki klasörleri silme işlemi silinmiyor
- 3. /var/log/hadoop-hdfs altındaki hadoop-hdfs günlüklerini nasıl temizlerim
- 4. Hadoop HDFS
- 5. S3 - HDFS
- 6. Kıvılcım: kıvılcım kabuklarından kıvılcım dosyasını nasıl çalıştırılır
- 7. Kıvılcım Spark içinde kıvılcım
- 8. Qt içinde bir dizini yinelemeli olarak yürüdüğünüzde, klasörleri atlayın "." ve ".."
- 9. Tüm bir dizini yinelemeli olarak yeni bir yola kopyalayıp yapıştırın.
- 10. Kıvılcım
- 11. Kıvılcım
- 12. Kıvılcım
- 13. Apache Spark, HDFS veri düğümlerini nasıl biliyor?
- 14. Fırtına: HDFS URI'yi HA HDFS ile HdfsBolt() içinde tanımlayın
- 15. Senaryo yinelemeli sunucuda
- 16. Tüm kıvılcım boyunca kıvılcım iletimi ile bir kıvılcım işinin çalıştırılması
- 17. domuz komut dosyası, hdfs
- 18. javid'ten hdfs klasörünü sil
- 19. CloudStore ve HDFS
- 20. HDFS dosya görüntüleyicisi
- 21. HDFS dizinleri üzerinden geçme
- 22. hdfs dosyasında dosya yolu
- 23. kıvılcım gönderme sınıfıNotFoundException
- 24. Kıvılcım sayfalarını csv dosyası olarak okuma kıvılcım
- 25. Kıvılcım okuma python3 turşu girdi olarak
- 26. Kıvılcım RDD
- 27. Kıvılcım: dataframe
- 28. Dönüş min Dizin Yinelemeli olarak
- 29. i yinelemeli cıva takip sistemi
- 30. ExtJs4 yinelemeli
Eğer içindeki alt dizinleri ve dosyaların listesini almak gibi 'iterate' demek? veya tüm dosyaları tüm alt dizinlerde mi alıyorsunuz? – maasg
Tüm alt dizinleri listede yineleyin. Her alt dizin, farklı şekillerde işlemek istediğim bir grup metin dosyası içerir. – Jon