Làm thế nào để bạn viết RDD[Array[Byte]]
vào một tệp bằng cách sử dụng Apache Spark và đọc lại nó?Viết và đọc các mảng byte thô trong Spark - sử dụng Sequence File SequenceFile
7
A
Trả lời
10
Các sự cố thường gặp có vẻ lạ lùng không thể truyền ngoại lệ từ BytesWritable sang NullWritable. Vấn đề phổ biến khác là BytesWritable getBytes
là một đống vô nghĩa vô nghĩa mà không nhận được byte chút nào. Những gì getBytes
không nhận được byte của bạn hơn là thêm một tấn số không vào cuối! Bạn phải sử dụng copyBytes
val rdd: RDD[Array[Byte]] = ???
// To write
rdd.map(bytesArray => (NullWritable.get(), new BytesWritable(bytesArray)))
.saveAsSequenceFile("/output/path", codecOpt)
// To read
val rdd: RDD[Array[Byte]] = sc.sequenceFile[NullWritable, BytesWritable]("/input/path")
.map(_._2.copyBytes())
Các vấn đề liên quan
- 1. Đọc và Viết Sequencefile bằng cách sử dụng Hadoop 2.0 Apis
- 2. Đọc byte thô từ cổng nối tiếp
- 3. Đọc mảng chuỗi từ Spark
- 4. sử dụng java.util.Scanner để đọc byte tệp theo byte
- 5. Đọc một mảng C# byte trong Java
- 6. Làm thế nào để viết dataframe (thu được từ bảng hive) vào hadoop SequenceFile và RCFile?
- 7. Đọc và viết mảng nguyên vào bưu kiện
- 8. Spark sử dụng hình ảnh đọc PySpark
- 9. Golang: Cắt và điền các mảng byte
- 10. đọc file xml sử dụng LINQ
- 11. đọc và viết json tập tin sử dụng javascript
- 12. Đọc khoảng bit từ mảng byte
- 13. Đọc và viết cấu trúc trong C
- 14. Đọc Http Yêu cầu vào mảng Byte
- 15. .NET File nhị phân đọc hiệu suất
- 16. lưu khung dữ liệu Spark vào Hive: bảng không thể đọc được vì "sàn gỗ không phải là SequenceFile"
- 17. Tại sao viết nhiều mảng byte nhỏ vào một tệp nhanh hơn viết một mảng lớn?
- 18. PHP đọc tập tin như một mảng byte
- 19. Đọc dòng từ mảng byte (không chuyển đổi mảng byte thành chuỗi)
- 20. Đọc và viết một tệp trong groovy
- 21. Đọc/ghi byte trôi nổi trong JS
- 22. Viết Byte mảng để nối tiếp với Ruby
- 23. Làm thế nào để in nội dung byte thô từ một mảng byte [] thành stdout trong Java?
- 24. Python mở và file đọc lót
- 25. sử dụng một phần của mảng byte
- 26. Sử dụng Python Làm thế nào tôi có thể đọc các bit trong một byte?
- 27. Tìm chuỗi byte trong một mảng byte
- 28. Objective C - Tạo file văn bản để đọc và viết từng dòng trong Cocoa
- 29. Python viết các tệp nhị phân, byte
- 30. Viết từ Spark tới DynamoDB
Bài đăng này tương đối cũ nên chỉ muốn biết câu trả lời vẫn được cập nhật? Vẫn còn cần thiết để sử dụng copyBytes trước khi đọc? –
@SamStoelinga Có, tôi nghĩ vậy, đó là API Hadoop không có khả năng thay đổi. – samthebest
Một giải pháp thay thế hiệu quả hơn là sử dụng ' .getBytes()' và chỉ xử lý tối đa ' .getLength()' bytes. Tất nhiên, nếu bạn thực sự cần một 'RDD [Array [Byte]]', cách tiếp cận này sẽ không hoạt động, nhưng bạn có thể xem xét một 'RDD [(Array [Byte], Int)]'. –
user1609012