অ্যাপাচি পিগ (Apache Pig) একটি উচ্চ-স্তরের ডেটা প্রক্রিয়াকরণ ভাষা, যা হাডুপ (Hadoop) ইকোসিস্টেমে কাজ করার জন্য ব্যবহৃত হয়। পিগের মাধ্যমে ডেটা লোড, প্রক্রিয়াকরণ এবং আউটপুট ফরম্যাটের জন্য বিভিন্ন ফাংশন এবং স্টোরেজ স্কিমা প্রদান করা হয়। PigStorage, TextLoader, এবং JSONLoader হলো পিগের কিছু গুরুত্বপূর্ণ লোডার যা বিভিন্ন ডেটা ফরম্যাটে ডেটা ইনপুট এবং আউটপুট করার জন্য ব্যবহৃত হয়।
এগুলি পিগের ডেটা প্রক্রিয়াকরণ সক্ষমতা বাড়াতে সাহায্য করে, যাতে বিভিন্ন ধরনের ডেটা ফরম্যাট (যেমন টেক্সট, JSON, CSV ইত্যাদি) থেকে ডেটা লোড এবং স্টোর করা সম্ভব হয়।
PigStorage
PigStorage পিগের ডিফল্ট লোডার, যা সাধারণত টেক্সট ফাইল (বা CSV) থেকে ডেটা লোড করতে ব্যবহৃত হয়। এটি ডেটাকে ডিফল্টরূপে স্পেস (Space) বা ট্যাব (Tab) দ্বারা আলাদা করে। পিগ স্টোরেজের মাধ্যমে সাধারণত টেক্সট ডেটা সঠিকভাবে লোড এবং প্রসেস করা হয়।
PigStorage ব্যবহার করার উদাহরণ:
Text File লোড করা:
data = LOAD 'input.txt' USING PigStorage() AS (field1:int, field2:chararray, field3:float);এখানে,
input.txtফাইলটি PigStorage() লোডারের মাধ্যমে লোড করা হয়েছে।ASকিওয়ার্ডটি দিয়ে পিগকে জানানো হয়েছে যে, ডেটাতে তিনটি ফিল্ড থাকবে, যার মধ্যে:field1হবে একটি পূর্ণসংখ্যা (int),field2হবে একটি স্ট্রিং (chararray),field3হবে একটি ভাসমান পয়েন্ট সংখ্যা (float)।
Custom Delimiter ব্যবহার করা: যদি আপনার ডেটা ভিন্ন কোন ডেলিমিটার দিয়ে আলাদা করা হয় (যেমন কমা
,), তবে আপনি নিম্নলিখিতভাবে পিগ স্টোরেজ কনফিগার করতে পারেন:data = LOAD 'input.csv' USING PigStorage(',') AS (field1:int, field2:chararray, field3:float);এখানে,
','ডেলিমিটার দিয়ে ফিল্ডগুলো আলাদা করা হয়েছে।
TextLoader
TextLoader পিগের একটি লোডার যা টেক্সট ফাইল থেকে ডেটা লোড করার জন্য ব্যবহৃত হয়, তবে এটি স্পেস বা ট্যাব থেকে ভিন্নভাবে কাজ করতে পারে। TextLoader সাধারণত ব্যবহার করা হয় সেই ক্ষেত্রে যখন ডেটা ডিরেক্টরি বা ফাইল স্ট্রাকচার হোয়াইটস্পেস ছাড়া এক্সটেনশন (বা নির্দিষ্ট ফরম্যাট) সহ থাকে।
TextLoader ব্যবহার করার উদাহরণ:
Text ফাইল লোড করা:
data = LOAD 'input_dir/*' USING TextLoader() AS (line:chararray);এখানে,
input_dir/*ডিরেক্টরির সকল ফাইলের ডেটা লোড হবে এবং প্রত্যেকটি লাইনের জন্য একটি chararray ফিল্ড নির্ধারণ করা হয়েছে।TextLoader থেকে ডেটা ফিল্টারিং: যদি আপনি লোড করা ডেটা থেকে কিছু ফিল্টার করতে চান, তাহলে আপনি নীচের মত ব্যবহার করতে পারেন:
data = LOAD 'input.txt' USING TextLoader() AS (line:chararray); filtered_data = FILTER data BY line MATCHES '.*error.*';এখানে, শুধুমাত্র সেই লাইনগুলো ফিল্টার করা হবে, যেখানে 'error' শব্দটি পাওয়া যাবে।
JSONLoader
JSONLoader একটি পিগ লোডার যা JSON ফাইল থেকে ডেটা লোড করতে ব্যবহৃত হয়। JSON ফাইলের ডেটা লোড করার জন্য পিগের JSONLoader ব্যবহার করা হয়, যা ডেটাকে স্বয়ংক্রিয়ভাবে JSON অবজেক্টে পার্স করে।
JSONLoader ব্যবহার করার উদাহরণ:
JSON ফাইল লোড করা:
data = LOAD 'input.json' USING JSONLoader() AS (field1:int, field2:chararray, field3:float);এখানে,
input.jsonফাইলটিJSONLoader()লোডারের মাধ্যমে লোড করা হয়েছে। JSON ফাইলের মধ্যে তিনটি ফিল্ড আছে:field1,field2, এবংfield3।JSON ডেটাতে Nested Structures Handling: যদি JSON ফাইলে নেস্টেড ডেটা থাকে (যেমন অবজেক্ট বা অ্যারে), তাহলে আপনি পিগ স্ক্রিপ্টে নেস্টেড ডেটাকে আলাদা ভাবে অ্যাক্সেস করতে পারবেন:
data = LOAD 'nested_data.json' USING JSONLoader() AS (field1:int, field2:chararray, nested_field:tuple(field3:float, field4:chararray));এখানে,
nested_fieldএকটি tuple হিসেবে ডিফাইন করা হয়েছে, যেখানে দুটি সাব-ফিল্ড রয়েছে:field3(float) এবংfield4(chararray)।
PigStorage, TextLoader, এবং JSONLoader এর মধ্যে পার্থক্য
- PigStorage:
- সাধারনত টেক্সট ফাইল এবং CSV ফাইলের জন্য ব্যবহৃত হয়।
- স্পেস বা কাস্টম ডেলিমিটার দিয়ে ডেটা আলাদা করা হয়।
- সিম্পল টেক্সট ডেটা প্রসেসিংয়ের জন্য উপযুক্ত।
- TextLoader:
- সাধারণ টেক্সট ডেটা ফাইলের জন্য ব্যবহৃত হয়।
- ডিরেক্টরি স্ট্রাকচারের ফাইলগুলি লোড করতে সহায়তা করে।
- হোয়াইটস্পেস বা নির্দিষ্ট ফরম্যাটে ডেটা রাখা হলে কার্যকরী।
- JSONLoader:
- JSON ফাইল থেকে ডেটা লোড করতে ব্যবহৃত হয়।
- JSON অবজেক্ট বা নেস্টেড ডেটা প্রসেস করতে সহায়তা করে।
সার্বিক দৃষ্টিকোণ
PigStorage, TextLoader, এবং JSONLoader পিগে ডেটা লোড করার জন্য বিভিন্ন পদ্ধতি প্রদান করে, যা ব্যবহারকারীদের বিভিন্ন ডেটা ফরম্যাট থেকে ডেটা প্রক্রিয়া করতে সক্ষম করে। PigStorage সাধারণ টেক্সট বা CSV ফাইলের জন্য উপযুক্ত, TextLoader বিশেষভাবে ডিরেক্টরি স্ট্রাকচারের ফাইলের জন্য এবং JSONLoader JSON ফাইলের জন্য সবচেয়ে কার্যকরী। এই লোডারগুলো ব্যবহার করে, পিগ সিস্টেমের মাধ্যমে ডেটা প্রক্রিয়াকরণ আরও সহজ এবং দক্ষ হয়ে ওঠে।
Read more