2012-11-24 12 views
8

के साथ-साथ बाहरी छत्ता तालिका ड्रॉप करने मैंछत्ता - कैसे डेटा

drop table <table_name> 

उपयोग कर रहा हूँ तो मैं एक ही स्कीमा और नाम के साथ तालिका पुन: बनाने, मैं पुराने डेटा वापस हो रही है। क्या मुझे डेटा से छुटकारा पाने के लिए hdfs फ़ाइल सिस्टम से तालिका निर्देशिका को हटा देना चाहिए?

उत्तर

1

एचडीएफएस में निर्देशिका को हटाने की आवश्यकता नहीं है, सिवाय इसके कि आपको अधिक एचडीएफएस स्पेस की आवश्यकता है।

यदि आप नए डेटा को बदलना चाहते हैं, तो आपको बस hdfs में फ़ाइल को प्रतिस्थापित करने की आवश्यकता है।

यदि आप अन्य उपयोग के लिए तालिका नाम का उपयोग करना चाहते हैं, तो तालिका ड्रॉप करें और निर्देशिका को hdfs में हटा दें।

वास्तव में, मुझे लगता है कि यह एक बहुत ही आसान सुविधा है कि आप अपनी तालिका की स्कीमा बदल सकते हैं (उदाहरण के लिए, आप फील्ड नाम बदलना चाहते हैं या दो फ़ील्ड को एक फ़ील्ड में बदलना चाहते हैं) बिना किसी डेटा खोए।

+1

मेरी समस्या है कि मुझे डेटा से छुटकारा पाने की आवश्यकता है, लेकिन उसी नाम और स्कीमा के साथ तालिका को फिर से बनाना है? – amrk7

+4

एचडीएफएस फ़ाइल को हटाएं, ड्रॉप टेबल; एचडीएफएस में नई फाइल आयात करें और नई टेबल बनाएं। – pensz

2

हालांकि मैं पेन्ज़ से सहमत हूं, मामूली बदलाव, आप को तालिका को ड्रॉप करने की आवश्यकता नहीं है। बाहरी एचडीएफएस फ़ाइल को अपनी इच्छित नई फ़ाइल के साथ प्रतिस्थापित करें (प्रतिस्थापित फ़ाइल की संरचना समान होनी चाहिए) और जब आप पिछली तालिका का चयन * करते हैं, तो आप देखेंगे कि इसमें नया डेटा होगा और पुराना नहीं होगा एक।

बाहरी सारणी मूल रूप से केवल डेटा की स्कीमा और फ़ाइल के स्थान को दर्शाती हैं। आप एक ही स्थान पर कई फाइलें जोड़ सकते हैं, और आपकी तालिका में स्वचालित रूप से इन फ़ाइलों से संबंधित सभी डेटा शामिल होंगे। इसी तरह, आप किसी भी डेटा को प्रतिस्थापित कर सकते हैं और स्वचालित रूप से आपकी तालिका इसे प्रतिबिंबित करेगी।

+1

हालांकि यदि आपकी तालिका विभाजित है, तो थोड़ा बदलाव आवश्यक होगा। मुझे लगता है कि आपकी टेबल नहीं है। –

+0

धन्यवाद! बहुत सारी जानकारी है – amrk7

1

पहले निम्न आदेश का उपयोग कर तालिका के पथ मिलती है:

छत्ता> स्वरूपित database_name.table_name का वर्णन; आदेश के बाद दी गई सारणी से सभी डेटा काटना इस प्रयोग के बाद /user/hive/warehouse/database_name.db/table_name

:

फिर पूरे स्थान जो विवरण में दिखाई देते हैं, उदाहरण के लिए कॉपी

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

या

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

तो फिर तुम यह हमें पूरी तरह से पोंछ सकते हैं ड्रोप टेबल कमांड आईएनजी।

0

अगर यह एक बाहरी तालिका है, टेबल छोड़ने का मतलब है तुम सिर्फ योजना

हटा रहे हैं तो आप मैन्युअल रूप से

या एक नया टेबल बना सकते हैं और एक अलग देना HDFS

से फ़ाइल को नष्ट करने के लिए है tbl गुणों में फ़ाइल स्थान

संबंधित मुद्दे