Tôi có một thư mục gồm các thư mục trên HDFS và tôi muốn lặp qua các thư mục. Có cách nào dễ dàng để làm điều này với Spark bằng cách sử dụng đối tượng SparkContext không?Thư mục Spark lặp lại HDFS
Trả lời
Bạn có thể sử dụng org.apache.hadoop.fs.FileSystem
. Cụ thể, FileSystem.listFiles([path], true)
Và với Spark ...
FileSystem.get(sc.hadoopConfiguration()).listFiles(..., true)
Hoàn hảo, cảm ơn. – Jon
thực sự tốt đẹp! [Tôi có câu hỏi này] (http://stackoverflow.com/questions/34738296/spark-spark-submit-jars-arguments-wants-comma-list-how-to-declare-a-directory/35550151#35550151), được cấp, tôi đoán điều này sẽ không hoạt động trong lời gọi spark-submit ban đầu – JimLohse
Làm cách nào để tạo danh sách các tệp bằng RemoteIterator này? – horatio1701d
import org.apache.hadoop.fs.{FileSystem,Path}
FileSystem.get(sc.hadoopConfiguration).listStatus(new Path("hdfs:///tmp")).foreach(x => println(x.getPath))
này đã làm việc cho tôi.
Spark phiên bản 1.5.0-cdh5.5.2
Bạn có thể thử với tình trạng globStatus cũng
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())
}
Dưới đây là phiên bản PySpark nếu ai đó đang quan tâm:
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()
Đặc biệt này trường hợp tôi nhận được danh sách của tất cả các tập tin tạo nên disc_mrt.unified_fact bảng Hive.
Các phương pháp khác của đối tượng FileStatus, như getLen() để có được kích thước tập tin được mô tả ở đây:
- 1. Vòng lặp Bash trên các tệp trong thư mục hdfs
- 2. Sử dụng Spark để liệt kê tất cả các tệp trong thư mục Hadoop HDFS?
- 3. Xóa thư mục hdfs khỏi java
- 4. Lặp lại thông qua Spark RDD
- 5. Lặp lại qua mỗi tệp trong một thư mục
- 6. Lặp lại qua các thư mục con đăng ký
- 7. Lặp lại mọi tệp .jpg hoặc .jpeg trong thư mục và thư mục con
- 8. Apache Spark đọc tệp dưới dạng luồng từ HDFS
- 9. Lặp qua một thư mục
- 10. Có lệnh hdfs nào để liệt kê các tệp trong thư mục HDFS theo dấu thời gian
- 11. Lặp lại tất cả các tệp trong thư mục bằng cách sử dụng vòng lặp 'for'
- 12. viết một RDD vào HDFS trong một bối cảnh spark-streaming
- 13. Thư viện lặp lại PHP ngày?
- 14. lặp qua các thư mục con
- 15. lặp qua thư mục với Assets.getText
- 16. Return max lặp đi lặp lại mục trong danh sách
- 17. Lặp lại các mục ListView trong Android
- 18. Looping thông qua các mục lặp lại
- 19. Làm thế nào để điều hướng các thư mục trong Hadoop HDFS
- 20. Pyspark: lấy danh sách tệp/thư mục trên đường dẫn HDFS
- 21. Xóa mức thư mục khi chuyển từ HDFS sang S3 bằng S3DistCp
- 22. Lỗi HDFS đặt: `đầu vào ': Không có tệp hoặc thư mục nào như vậy
- 23. Lặp lại tất cả các tệp trong thư mục bằng BOOST_FOREACH
- 24. Lặp lại một số lượng lớn các tệp trong một thư mục
- 25. Trình lặp lại thư mục PHP đệ quy - bỏ qua một số tệp nhất định.
- 26. lặp lại một DirectoryStream và thay đổi nội dung của một thư mục cùng lúc
- 27. Thư viện để làm việc với các quy tắc lặp lại trong Mục tiêu C?
- 28. Làm cách nào để lặp lại các tệp trong một thư mục nhất định?
- 29. Ack - Bỏ qua nhiều thư mục mà không lặp lại cờ
- 30. ng-lặp lại bên trong ng-lặp lại với td cho mỗi mục - AngularJS
bạn có nghĩa là 'lặp' như có được danh sách các thư mục con và các tập tin bên trong? hoặc nhận tất cả các tệp trên tất cả các thư mục con? – maasg
Lặp lại như trong danh sách tất cả các thư mục con. Mỗi thư mục con chứa một loạt các tệp văn bản mà tôi muốn xử lý theo các cách khác nhau. – Jon