Tôi có các tệp có tên part-r-000 [0-9] [0-9] và chứa các trường được phân tách bằng tab. Tôi có thể xem chúng bằng cách sử dụng hadoop fs -text part-r-00000
nhưng không thể tải chúng bằng cách sử dụng lợn.Apache Pig: Tải một tệp hiển thị tốt bằng cách sử dụng hadoop fs -text
Những gì tôi đã cố gắng:
x = load 'part-r-00000';
dump x;
x = load 'part-r-00000' using TextLoader();
dump x;
nhưng điều đó chỉ mang lại cho tôi rác. Làm thế nào tôi có thể xem các tập tin bằng cách sử dụng lợn?
Điều gì có thể liên quan là hdfs của tôi vẫn đang sử dụng CDH-2 tại thời điểm này. Hơn nữa, nếu tôi tải tệp xuống địa phương và chạy file part-r-00000
, hãy nói part-r-00000: data
, tôi không biết cách giải nén tệp cục bộ.
Tôi tin đầu tiên 'load' của bạn sử dụng PigStorage, nhưng có lẽ bạn có thể kiểm tra lại bằng cách rõ ràng, 'x = LOAD 'part-r-00000' SỬ DỤNG SỬ DỤNG PigStorage ('\ t')'. Khi bạn tải xuống tệp cục bộ, nếu bạn xem tệp đó (tức là 'đuôi'), nó có phải là rác/nhị phân không? Bạn có thể cho ví dụ về mã tạo dữ liệu này không? –
Sử dụng PigStorage cho kết quả tương tự. Tải xuống địa phương (bằng cách sử dụng -get hoặc -copyToLocal) tệp không thể đọc được, i. e. nhị phân/rác (ít hoặc đuôi). Tôi sẽ cố tìm mã đã tạo các tệp này và báo cáo lại. – exic
Dường như tệp đã được lưu trữ dưới dạng tệp chuỗi. Tôi đã có thể trích xuất các dòng từ nó bằng cách sử dụng chức năng tải do người dùng xác định. Có cách nào đơn giản hơn bằng cách sử dụng udf? – exic