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
5
A
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 định và bản demo với cơ sở dữ liệu và bảng bạn muốn hoạt động trên.
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ệu và bả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
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. –
@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