Tôi có một ứng dụng mẫu làm việc để đọc từ tệp csv vào một khung dữ liệu. Bạn có thể lưu dataframe vào bảng Hive ở định dạng sàn bằng cách sử dụng phương thức df.saveAsTable(tablename,mode)
.Lưu biểu dữ liệu Spark dưới dạng bảng được phân đoạn động trong Hive
Mã trên hoạt động tốt, nhưng tôi có quá nhiều dữ liệu cho mỗi ngày mà tôi muốn phân vùng động bảng hive dựa trên creationdate (cột trong bảng).
là có bất kỳ cách nào để phân vùng động các khung dữ liệu và lưu trữ nó vào kho lưu trữ. Bạn muốn kiềm chế Cố định mã lệnh chèn cứng bằng cách sử dụng hivesqlcontext.sql(insert into table partittioin by(date)....)
.
Câu hỏi có thể được coi như một phần mở rộng để: How to save DataFrame directly to Hive?
bất kỳ giúp đỡ được nhiều đánh giá cao.
Đã thử phương pháp phân vùng này. Nó chỉ hoạt động trên cấp độ RDD, một khi dataframe được tạo ra hầu hết các phương thức được tạo kiểu DBMS, ví dụ: groupby, orderby nhưng chúng không phục vụ mục đích viết trong các thư mục phân vùng khác nhau trên Hive. – Chetandalal
Ok, do đó, đã có thể làm việc với 1,4 phiên bản. df.write(). mode (SaveMode.Append) .partitionBy ("date"). saveAsTable ("Tablename"); . Tuy nhiên điều này thay đổi trường ngày của tôi thành giá trị số nguyên và xóa ngày thực tế. ví dụ. có 9 ngày duy nhất trong cột nhưng chúng hiện được lưu trữ là 1,2,3 .... và tên thư mục là ngày = 1,2,3, ... thay vì ngày = 20141121. Hãy cho tôi biết nếu có một cách để làm điều này. – Chetandalal
@ subramaniam-ramasubramanian: vui lòng trả lời câu hỏi của OP là câu trả lời thay vì chỉnh sửa câu trả lời hiện có –