2012-01-17 27 views
10

Tôi muốn tệp đầu ra có định dạng là 2012117-part-r-00000. Về cơ bản tôi muốn các tập tin đầu ra có ngày nối thêm vào nó, để tôi có thể sắp xếp các tập tin theo ngày. Tôi đã xem OutputFormat và FileOutputFormat, nhưng nó không giúp ích cho trường hợp của tôi.cách đặt tên tùy chỉnh cho các tệp đầu ra hadoop

Trả lời

5

Không có nhiều sự linh hoạt trong tên tệp đầu ra của công việc MR. Sử dụng các lớp con của MultipleOutputFormat.

Phương pháp MultipleOutputFormat#generateFileNameForKeyValue phải được triển khai, bỏ qua các đầu vào cho phương thức này và trả về một chuỗi trong mẫu date + -part-r- + mapred.task.partition. mapred.task.partition là một int, do đó, nó phải được đệm sẵn với 0 một cách thích hợp.

+0

LÀ không có cách nào dễ dàng, tại một trong những phiên bản trước đó tôi đoán chúng tôi đã có tùy chọn như FileOutputFormat.setOutputName (JobConf công việc, Tên chuỗi); Ngoài ra, lớp giảm tốc của tôi đã được mở rộng Reducer, vì vậy nó sẽ được tought cho tôi để mở rộng một lớp học. – RFT

+0

Tôi không thấy điều đó trong API Hadoop. –

+0

Ok, nhưng như tôi đã đề cập đến lớp giảm tốc của tôi đã mở rộng một lớp khác, tôi có thể bao gồm một lớp tĩnh và có lớp đó mở rộng MultipleOutputFormat và sau đó gọi lớp đó từ đâu đó? – RFT

Các vấn đề liên quan