Làm cách nào để đọc tệp dưới dạng luồng từ hdfs bằng Apache Spark Java? Tôi không muốn đọc toàn bộ tệp, tôi muốn có luồng tệp để dừng đọc tệp khi một số điều kiện được đáp ứng, làm cách nào tôi có thể thực hiện với Apache Spark?Apache Spark đọc tệp dưới dạng luồng từ HDFS
Trả lời
Bạn có thể sử dụng tập tin HDFS trực tuyến sử dụng phương pháp ssc
val ssc = new StreamingContext (sparkConf, Giây (batchTime))
val dStream = ssc.fileStream [LongWritable, Text, TextInputFormat] ( streamDirectory , (x: Đường dẫn) => true, newFilesOnly = false)
Sử dụng trên api bộ lọc param Chức năng lọc đường dẫn để xử lý.
Nếu điều kiện của bạn không có đường dẫn/tên tệp và dựa trên dữ liệu, thì bạn cần dừng ngữ cảnh phát trực tuyến nếu điều kiện thỏa mãn.
Đối với điều này, bạn cần sử dụng triển khai chuỗi, 1) Trong một chuỗi bạn cần phải tiếp tục kiểm tra ngữ cảnh phát trực tuyến bị dừng và nếu ssc dừng lại thì hãy thông báo cho luồng khác chờ và tạo ngữ cảnh phát trực tuyến mới.
2) Trong chuỗi thứ hai, bạn cần kiểm tra điều kiện và nếu điều kiện thỏa mãn thì dừng ngữ cảnh phát trực tiếp.
Vui lòng cho tôi biết nếu bạn cần giải thích.
Sự cố mà tôi có ví dụ: hai tệp tin và tôi chỉ muốn đọc N dòng từ mỗi (từ vài đến hàng tỷ). Giải pháp của bạn sẽ tốn kém nhiều. – Maksym
- 1. Đọc tệp HDF5 trong Apache Spark
- 2. Làm thế nào để sử dụng API Java Spark để đọc luồng tệp nhị phân từ HDFS?
- 3. Đọc các tệp json khá in trong Apache Spark
- 4. Không thể đọc tệp từ HDFS bằng cách sử dụng Spark
- 5. Spark: chạy InputFormat dưới dạng singleton
- 6. Định dạng tệp mô hình Apache Spark MLlib
- 7. Đọc tệp excel từ luồng
- 8. Đọc danh sách kết hợp không được hỗ trợ từ một tệp Avro trong Apache Spark
- 9. Đọc tệp XML dưới dạng Số liệu
- 10. Làm thế nào để đọc đĩa CD dưới dạng tệp?
- 11. Apache Spark Stderr và Stdout
- 12. Sử dụng Apache Spark với HDFS vs phân phối lưu trữ khác
- 13. Apache Spark vs Apache Spark 2
- 14. Đọc mảng chuỗi từ Spark
- 15. Apache Spark RDD Split "|"
- 16. Đọc định dạng văn bản hex 0x từ luồng
- 17. Apache Spark biết về các nút dữ liệu HDFS như thế nào?
- 18. Cách ghi luồng RTP/H264 dưới dạng tệp
- 19. Đọc số dưới dạng chuỗi
- 20. lưu dưới dạng tên tệp trong từ
- 21. express.js: cách tải xuống luồng dưới dạng tệp?
- 22. Tệp luồng dưới dạng RTSP bằng cách sử dụng VLC
- 23. Lấy tệp từ xa HDFS
- 24. Tài nguyên từ tập hợp dưới dạng luồng
- 25. Đọc XML từ Luồng
- 26. Java Apache POI Excel lưu dưới dạng PDF
- 27. Đọc các tệp ảnh RAW dưới dạng GDI + bitmap
- 28. Thư mục Spark lặp lại HDFS
- 29. Hỗ trợ nén trong Apache Spark
- 30. Apache Spark và Apache Storm
Chck this :: https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/HdfsWordCount.scala – yoga
Ví dụ này không phải là liên quan đến câu hỏi của tôi. – Maksym
Bạn có thể giải thích rõ hơn những gì bạn đang cố gắng đạt được không? Tại sao bạn cần nó như một dòng (trái ngược với việc chỉ đọc nó như là một RDD/Dataframe)? Bạn đang hỏi làm thế nào để có tia lửa streaming đọc nội dung của một thư mục HDFS và dừng lại khi nó được thực hiện (thay vì chờ đợi cho khoảng thời gian tiếp theo)? Bạn cũng đang nói về DStream hoặc phát trực tuyến có cấu trúc? –