पेंटाहो केटल के भीतर तुलना करने के लिए मेरे पास दो अलग-अलग फ़ील्ड हैं (दो अलग एक्सेल फ़ाइल इनपुट से)। पहली एक्सेल फ़ाइल के फ़ील्डनाम को "स्थान" कहा जाता है और दूसरे एक्सेल इनपुट के फ़ील्डनाम को "दिशा" कहा जाता है। दोनों क्षेत्रों में डेटाटाइप "स्ट्रिंग" है।
"स्थान" फ़ील्ड की प्रविष्टियाँ अद्वितीय हैं जबकि "दिशा" फ़ील्ड की प्रविष्टियाँ अद्वितीय नहीं हैं। उदाहरण के लिए, उनमें "न्यूयॉर्क" स्ट्रिंग कई बार हो सकती है।
मैं जो करना चाहता हूं वह "दिशा" की प्रत्येक प्रविष्टि की तुलना करना है - "स्थान" -फ़ील्ड की सभी प्रविष्टियों के साथ फ़ील्ड। चूंकि स्थान-क्षेत्र लुकअप तालिका के रूप में कार्य करता है, मैं जानना चाहता हूं कि स्थान-प्रविष्टियों में कौन सी दिशा-प्रविष्टियां सूचीबद्ध नहीं हैं।
परिणाम कई तार (दिशाएं) होना चाहिए जो स्थान-लुकअप-तालिका में प्रकट नहीं होते हैं। ऐसा करने के लिए, मुझे प्रत्येक स्थान-प्रविष्टि के साथ प्रत्येक दिशा-प्रविष्टि की तुलना करने के लिए दो छोरों (जो नेस्टेड हैं) की आवश्यकता होगी। मैं पेंटाहो केटल का उपयोग करके इसे कैसे प्राप्त कर सकता हूं? मैंने पहले ही इसे मर्ज रो (diff) - और संशोधित जावा स्क्रिप्ट वैल्यू-स्टेप्स के साथ आज़माया है, लेकिन सफल नहीं हुआ। इसे कैसे हल करें इस पर कोई सुझाव?
1 उत्तर
पेंटाहो धाराओं का उपयोग करके काम करता है, आमतौर पर लूप की आवश्यकता नहीं होती है।
नीचे दी गई छवि में मैंने एक साधारण परिवर्तन का निर्माण किया है जो आपको वह करना चाहिए जो आप चाहते हैं:
- दो एक्सेल इनपुट आपको आपके दिशा-निर्देश और स्थान, साथ ही आपके लिए आवश्यक अतिरिक्त फ़ील्ड प्राप्त करने चाहिए।
- स्ट्रीम लुकअप सभी रिकॉर्ड्स को तुलना के लिए मेमोरी में लोड करता है (स्थान एक्सेल इनपुट को लुकअप चरण के रूप में कॉन्फ़िगर करें) और फिर आपके द्वारा कॉन्फ़िगर किए गए फ़ील्ड (दिशा और स्थान) के आधार पर दिशाओं से प्रत्येक पंक्ति को देखता है।
- स्थान लुकअप, एक आईडी या स्थान से लौटने के लिए आपको कम से कम एक फ़ील्ड दर्ज करना चाहिए।
- फ़िल्टर पंक्तियाँ तब जाँचती हैं कि क्या नया फ़ील्ड (Location_id, स्थान, आपके पास क्या है) का कुछ मूल्य है। यदि भरा हुआ है, तो स्थान मौजूद है, यदि खाली है, तो आगे की प्रक्रिया के लिए नहीं मिला।