2015-03-03 14 views
10

मेरे पास एक बहुत ही भारी लकड़ी की छत फ़ाइल है जहां मुझे कॉलम में से किसी एक के लिए मूल्यों को बदलने की आवश्यकता है। ऐसा करने का एक तरीका स्रोत टेक्स्ट फ़ाइलों में उन मानों को अपडेट करना और लकड़ी की छत फ़ाइल को फिर से बनाना होगा, लेकिन मुझे आश्चर्य है कि इसमें कम महंगा और समग्र आसान समाधान है या नहीं।अपाचे पैराक्वेट फ़ाइल में मानों को अपडेट करना

+1

नहीं। आपको फ़ाइल को फिर से बनाना होगा। –

+0

@DanOsipov धन्यवाद। मुझे लगता है कि यह सीमा विभिन्न संपीड़न एल्गोरिदम के कारण होती है जहां कॉलम मान अपडेट करने के लिए यह आसान या संभव नहीं होगा। –

+0

मैं कहूंगा, यह एक लकड़ी के विशिष्ट प्रश्न के बजाय, एक और अधिक मौलिक सवाल है। उच्च डेटा वॉल्यूम की दुनिया में, जहां लकड़ी की छत का उपयोग किया जाता है, अपरिवर्तनीयता ऐसी चीज है जिसे आप परवाह करना चाहते हैं। इस परिप्रेक्ष्य से आप डेटा लोड करना चाहते हैं, इसे बदलना चाहते हैं, और फिर इसे फिर से लिखना चाहते हैं। आप केवल उन स्तंभों को लिखने पर विचार कर सकते हैं जिन्हें आपको चाहिए, जो इसे अधिक कुशल बनाता है क्योंकि यह एक स्तंभबद्ध प्रारूप है। विस्तृत उत्तर और पृष्ठभूमि जानकारी के लिए –

उत्तर

2

मूल बातें

  1. लकड़ी एक fileformat अगर साथ शुरू की सुविधा देता है, लेकिन एक फाइल सिस्टम में बचाया जाना चाहिए।
  2. क्या लकड़ी का समर्थन संलग्न करता है। ?
  3. क्या फ़ाइल सिस्टम (एचडीएफएस) फ़ाइल पर संलग्न होने की अनुमति देता है।
  4. यहां तक ​​कि अगर सभी सही हैं करता है काम फ्रेमवर्क (स्पार्क)

जवाब संलग्न संभाल करने में सक्षम है:

  1. लकड़ी: parquet.hadoop.ParquetFileWriter केवल बनाएं और अधिलेखित का समर्थन करता है, लेकिन कोई संलग्न मोड। (सुनिश्चित नहीं हैं, लेकिन यह अन्य कार्यान्वयन में बदल सकते हैं, लकड़ी के डिजाइन समर्थन जोड़ देता है)

  2. HDFS HDFS (dfs.support.append संपत्ति) का उपयोग कर फाइलों पर संलग्न

  3. स्पार्क ढांचा मौजूदा से अटैचमेंट का समर्थन नहीं करता की अनुमति देता है लकड़ी की छत फाइलें।

    https://issues.apache.org/jira/browse/SPARK-18199

http://bytepadding.com/big-data/spark/read-write-parquet-files-using-spark/

http://bytepadding.com/linux/understanding-basics-of-filesystem/

के माध्यम से जाने के लिए कृपया एक विस्तृत समझ के लिए

+0

धन्यवाद। यह सहायक है – Keith

0

आपको फ़ाइल को फिर से बनाना होगा, यह हैडोप तरीका है। विशेष रूप से अगर फ़ाइल संपीड़ित है।

एक और दृष्टिकोण, (बिग-डेटा में बहुत आम), एक और पैराक्वेट (या ओआरसी) फ़ाइल पर अद्यतन करना है, फिर क्वेरी समय पर जॉइन/यूनियन।

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