string - Hadoop में टेक्स्ट और स्ट्रिंग के बीच अंतर



text (1)

Hadoop ढांचे में org.apache.hadoop.io.Text और java.lang.String बीच अंतर क्या है?

वे नए Text क्लास के बजाय String उपयोग क्यों नहीं कर सकते?

मैंने अंतर की जांच की और पता चला कि इसे एन्कोडिंग प्रारूप के साथ करना है; हालांकि मैं इसे अभी तक नहीं समझता।

क्या कोई अंतर (उदाहरण के साथ, यदि लागू हो) समझा सकता है?


एक पाठ ऑब्जेक्ट का बाइनरी प्रस्तुतीकरण एक चर लंबाई पूर्णांक है जिसमें स्ट्रिंग के UTF-8 प्रस्तुतीकरण में बाइट्स की संख्या होती है, उसके बाद यूटीएफ -8 बाइट्स खुद ही होती हैं।

पाठ UTF8 वर्ग के प्रतिस्थापन है, जिसे हटा दिया गया था क्योंकि यह उन तारों का समर्थन नहीं करता, जिनकी एन्कोडिंग 32,767 बाइट्स से अधिक थी, और क्योंकि यह जावा के संशोधित यूटीएफ -8 का उपयोग करता था

इसके अलावा, पाठ मानक यूटीएफ -8 का उपयोग करता है, जो यूटीएफ -8 को समझने वाले अन्य उपकरणों के साथ काम करना आसान बनाता है।

स्ट्रिंग के संबंध में इसके कामकाज से संबंधित संक्षिप्त मतों में से कुछ निम्नलिखित हैं:

इंडेक्सिंग: मानक यूटीएफ -8 का उपयोग करने पर इसकी जोर के कारण, पाठ और जावा स्ट्रिंग वर्ग के बीच कुछ अंतर हैं। टेक्स्ट क्लास के लिए अनुक्रमण एन्कोडेड बाइट अनुक्रम में स्थिति के संदर्भ में है, न कि स्ट्रिंग में यूनिकोड वर्ण या जावा वर्ण कोड इकाई (जैसा कि स्ट्रिंग के लिए है)।

उदाहरण के लिए, charAt() एक यूनिकोड कोड बिंदु का प्रतिनिधित्व करने वाला एक charAt() देता है, स्ट्रिंग वेरिएंट के विपरीत, जो चार अक्षर देता है

परिवर्तन: पाठ में यूनिकोड वर्णों पर चलना अनुक्रमण के लिए बाइट ऑफसेट के इस्तेमाल से जटिल है, क्योंकि आप केवल सूचकांक को बढ़ा नहीं सकते हैं

उत्परिवर्तनीय: स्ट्रिंग के साथ एक और अंतर यह है कि पाठ अस्थिर है (जैसे हुकोप में सभी लेखन योग्य कार्यान्वयन, नलयोग्ययोग्य को छोड़कर, जो एक सिंगलटन है)। आप उस पर एक सेट () विधियों को कॉल करके पाठ उदाहरण का पुन: उपयोग कर सकते हैं

स्ट्रिंग को सहारा देना:

पाठ को java.lang.String रूप में स्ट्रिंग्स को हेर करने के लिए समृद्ध एपीआई नहीं है, इसलिए कई मामलों में, आपको टेक्स्ट ऑब्जेक्ट को स्ट्रिंग में कनवर्ट करना होगा। यह toString() विधि का उपयोग करते हुए सामान्य तरीके से किया जाता है:

अधिक जानकारी के लिए निश्चित गाइड पढ़ें।





hadoop