मैं फ़ाइलों के एक सेट से डेटा प्रोसेस कर रहा हूं जिसमें फ़ाइल नाम के हिस्से के रूप में दिनांक टिकट शामिल है। फ़ाइल के भीतर डेटा में दिनांक टिकट नहीं है। मैं फ़ाइल नाम को संसाधित करना चाहता हूं और इसे स्क्रिप्ट के भीतर डेटा संरचनाओं में से एक में जोड़ना चाहता हूं। क्या पिग लैटिन (शायद पिगस्टॉरेज के लिए एक विस्तार?) के भीतर ऐसा करने का कोई तरीका है या क्या मुझे पर्ल या पहले की तरह सभी फ़ाइलों को प्रीप्रोसेस करने की ज़रूरत है?मैं अपने पिग लैटिन स्क्रिप्ट में वर्तमान इनपुट फ़ाइल नाम कैसे शामिल कर सकता हूं?
-- Load two fields from file, then generate a third from the filename
rawdata = LOAD '/directory/of/files/' USING PigStorage AS (field1:chararray, field2:int, field3:filename);
-- Reformat the filename into a datestamp
annotated = FOREACH rawdata GENERATE
REGEX_EXTRACT(field3,'*-(20\d{6})-*',1) AS datestamp,
field1, field2;
नोट लोड बयान में विशेष "फ़ाइल नाम" डेटाप्रकार:
मैं निम्नलिखित की तरह कुछ कल्पना। ऐसा लगता है कि डेटा लोड होने के बाद इसे वहां होना होगा, स्रोत फ़ाइल नाम पर वापस जाने में बहुत देर हो चुकी है।