2012-11-24 38 views

Trả lời

1

Không cần phải xóa thư mục trong hdfs trừ khi bạn cần thêm không gian hdfs.

Nếu bạn muốn thay thế dữ liệu mới, bạn chỉ cần thay thế tệp trong hdfs.

Nếu bạn muốn sử dụng tên bảng cho mục đích sử dụng khác, hãy thả bảng và xóa thư mục trong hdfs. Trong thực tế, tôi nghĩ rằng đây là một tính năng rất tiện dụng mà bạn có thể thay đổi lược đồ của bảng (ví dụ, bạn muốn thay đổi tên trường hoặc concat hai trường thành một trường) mà không mất bất kỳ dữ liệu nào.

+1

Vấn đề của tôi là tôi cần loại bỏ dữ liệu nhưng tạo lại bảng có cùng tên và lược đồ? – amrk7

+4

xóa tệp hdfs, thả bảng; nhập tệp mới trong hdfs và tạo bảng mới. – pensz

2

Mặc dù tôi đồng ý với pensz, một sự thay đổi nhỏ, bạn không cần phải bỏ bảng. Chỉ cần thay thế tệp hdfs bên ngoài bằng bất kỳ tệp mới nào bạn muốn (cấu trúc của tệp được thay thế phải giống nhau) và khi bạn chọn * của bảng trước, bạn sẽ thấy rằng nó sẽ có dữ liệu mới chứ không phải cũ một.

Các bảng bên ngoài về cơ bản chỉ biểu thị giản đồ dữ liệu và vị trí của tệp. Bạn có thể thêm nhiều tệp vào cùng một vị trí và bảng của bạn sẽ tự động chứa tất cả dữ liệu có liên quan đến những tệp này. Tương tự, bạn có thể thay thế bất kỳ dữ liệu nào và tự động bảng của bạn sẽ phản ánh điều này.

+1

Tuy nhiên nếu bảng của bạn được phân vùng, sẽ có những thay đổi nhỏ cần thiết. Im giả sử bảng của bạn là không. –

+0

Cảm ơn! tats rất nhiều thông tin – amrk7

1

Đầu tiên có được con đường của bảng sử dụng lệnh sau:

hive> mô tả database_name.table_name định dạng;

Sau đó copy toàn bộ vị trí mà xuất hiện trong mô tả, ví dụ: /user/hive/warehouse/database_name.db/table_name

Sau này sử dụng lệnh sau để cắt tất cả các dữ liệu từ bảng đưa ra:

***hive> dfs -rmr /user/hive/warehouse/database_name.db/table_name;*** 

HOẶC

***hive> dfs -rm -r /user/hive/warehouse/database_name.db/table_name;*** 

Sau đó, bạn có thể lau nó hoàn toàn chúng tôi Lệnh DROP TABLE.

0

nếu nó là một bảng bên ngoài, thả bàn có nghĩa là bạn chỉ xóa các chương trình

vì vậy bạn phải tự xóa các tập tin từ HDFS

hoặc tạo ra một bảng mới, và đưa ra một khác nhau vị trí tệp trong thuộc tính tbl

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