2013-09-26 64 views
5

Có thể truy xuất tên cột từ bảng và tải chúng vào bảng khác hoặc tệp văn bản trong hive không? Vui lòng cho tôi biết nếu chúng tôi có thể làm điều nàyHive - lấy tên cột

Trả lời

6

Không có tính năng OOTB nào cho phép điều này. Nhưng bạn có thể sử dụng MÔ TẢ với awk để đạt được điều đó:

bin/hive -S -e "use default; describe demo;" | awk -F" " '{print $1}' > ~/filename.txt 

Thay mặc địnhbản demo với cơ sở dữ liệu và bảng bạn muốn hoạt động trên.

+0

Những tuyên bố "không có tính năng OOTB" là một lời nói quá. [SHOW COLUMNS] (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ShowColumns) đã ở trong Hive kể từ phiên bản 0.10. –

+0

@JosephCottam: OOTB được đề cập để chỉ ra rằng không có lệnh được xây dựng cho phép chúng tôi xuất tên cột vào một bảng hoặc tệp khác. Nếu bạn vẫn cảm thấy nó được phóng đại, hãy thoải mái chỉnh sửa câu trả lời. – Tariq

3

Một giải pháp khác là sử dụng hive.cli.print.headers = true

Đây là những gì tôi đang sử dụng để nhận các tiêu đề như dấu phẩy tách ra. Thay cơ sở dữ liệubảng phù hợp:

hive -S -e 'SET hive.cli.print.header=true; SELECT * FROM database.table LIMIT 0' | sed -e 's/\t/,/g' > headers.txt 
4

Một chút nữa cô đọng phiên bản

hive -S -e "SHOW COLUMNS IN database_name.table_name" > column_names.txt 
Các vấn đề liên quan