2014-10-03 9 views
26

से स्तंभ नाम मिलता है मुझे पता है कि आप छत्ते में निम्नलिखित चाल के माध्यम से एक टेबल से स्तंभ नाम प्राप्त कर सकते हैं:बस छत्ता तालिका

hive> set hive.cli.print.header=true; 
hive> select * from tablename; 

यह भी संभव है करने के लिए सिर्फ मेज से स्तंभ नाम मिलता है ?

मुझे किसी चीज़ की सेटिंग बदलने की नापसंद है जिसे मुझे केवल एक बार चाहिए।

hive> set hive.cli.print.header=true; 
hive> select * from tablename; 
hive> set hive.cli.print.header=false; 

यह भी अत्यधिक शब्द और सूखी सिद्धांत के खिलाफ लगता है:

मेरे वर्तमान समाधान निम्नलिखित है।

+1

क्या आपका मतलब है कि आपको चयन * आउटपुट के साथ कॉलम नाम प्राप्त करने की आवश्यकता है? –

+1

क्यों वर्णन तालिका नहीं है ?? – Amar

+0

दोह! दस्तावेज़ों में से एक नहीं मिला। तालिका का वर्णन करता है। – cantdutchthis

उत्तर

34

आप बस कोई भी सेटिंग बदलने के बिना स्तंभ नाम इस एक लाइन यह प्रदान करना चाहिए देखना चाहते हैं:

describe database.tablename; 

हालांकि, अगर है कि छत्ता इस कोड को यह प्रदान करेगा के अपने संस्करण के लिए काम नहीं करता, लेकिन अपने डिफ़ॉल्ट डेटाबेस अब डेटाबेस का उपयोग कर रहे हो जाएगा:

use database; 
describe tablename; 
+0

मुझे एक प्रश्न मिला: सभी विभाजनों को स्कैन करने का वर्णन करेगा, जिससे हाइवमैटास्टोर ओओएम हो सकता है? मेरे मामले में tablename का वर्णन निष्पादित करते समय मुझे ओओएम का सामना करना पड़ा। –

32

आप भी show columns in $table कर सकता है या प्रदर्शन के लिए Hive, how do I retrieve all the database's tables columns देख मेटाडाटा अलग करने

+3

यह प्रश्न के स्वीकार्य उत्तर होना चाहिए "क्या ** ** ** कॉलम नाम प्राप्त करना संभव है", क्योंकि 'वर्णन' अतिरिक्त जानकारी प्रदान करता है। –

0

हाइव सीएलआई या 0 कॉलम नाम प्राप्त करने के लिए बीलाइन से desc tablename का उपयोग करें। यदि आप फ़ाइल में कॉलम नाम चाहते हैं तो शेल से नीचे दिए गए कमांड को चलाएं।

$ hive -e 'desc dbname.tablename;' > ~/columnnames.txt 

जहां dbname हाइव डेटाबेस जहां अपनी मेज रह रहा है का नाम है आप अपने रूट निर्देशिका में फाइल columnnames.txt पा सकते हैं।

$cd ~ 
$ls 
संबंधित मुद्दे