অ্যাপাচি পিগ (Apache Pig) একটি উচ্চ স্তরের ডেটা প্রসেসিং ফ্রেমওয়ার্ক, যা হ্যাডুপ (Hadoop) ইকোসিস্টেমের মধ্যে ডিস্ট্রিবিউটেড ডেটা প্রসেসিংকে সহজ এবং কার্যকরী করে তোলে। পিগে স্ক্রিপ্ট চালানোর সময়, কিছু সময় আপনাকে ডাইনামিকভাবে কিছু প্যারামিটার বা মান প্রদান করতে হতে পারে। এই ধরনের পরিস্থিতিতে, $param এবং %default পিগে ভেরিয়েবল বা প্যারামিটার ব্যবহারের জন্য গুরুত্বপূর্ণ ফিচার।
এই ফিচার দুটি ব্যবহার করে আপনি পিগ স্ক্রিপ্টের জন্য ডাইনামিক প্যারামিটার পাস করতে এবং ডিফল্ট মান সেট করতে পারেন।
১. $param (Dynamic Parameter)
$param পিগে একটি প্লেসহোল্ডার হিসাবে কাজ করে, যেখানে আপনি একটি ভেরিয়েবল বা প্যারামিটার ব্যবহার করতে পারেন। এটি স্ক্রিপ্টের চলার সময় মান গ্রহণ করে এবং সেই মানটি ব্যবহার করে স্ক্রিপ্টের অপারেশনগুলো চালানো হয়। এটি সাধারণত পিগ স্ক্রিপ্টে চলাকালীন সময় ডাইনামিক ভ্যালু পাস করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
$param
উদাহরণ:
ধরা যাক, আপনার একটি ডেটাসেট রয়েছে এবং আপনি সেটি একটি নির্দিষ্ট শর্তে ফিল্টার করতে চান, যেটি আপনি চলার সময় প্যারামিটার হিসাবে প্রদান করবেন।
-- Load employee data
employees = LOAD 'employee_data.csv' USING PigStorage(',') AS (id:int, name:chararray, salary:int);
-- Filter employees based on salary parameter
filtered_employees = FILTER employees BY salary > $salary_param;
-- Display the filtered result
DUMP filtered_employees;
এখানে, $salary_param একটি ডাইনামিক প্যারামিটার, যা স্ক্রিপ্ট চলাকালীন সময় পাস করা হবে। যখন আপনি স্ক্রিপ্ট চালাবেন, তখন এটি একটি নির্দিষ্ট বেতনের মান পাবে, যা ফিল্টার শর্তের জন্য ব্যবহার হবে।
স্ক্রিপ্ট চালানোর সময় প্যারামিটার পাস করা:
pig -param salary_param=50000 employee_script.pig
এই কমান্ডে, $salary_param এর মান ৫০,০০০ হবে এবং স্ক্রিপ্টে তা ফিল্টার অপারেশনের জন্য ব্যবহৃত হবে।
২. %default (Default Value Assignment)
%default পিগে একটি প্যারামিটার বা ভেরিয়েবলের জন্য ডিফল্ট মান নির্ধারণ করতে ব্যবহৃত হয়। এটি এমন পরিস্থিতিতে কাজে আসে যখন আপনি চান, যদি প্যারামিটার সরাসরি পাস না করা হয়, তবে একটি পূর্বনির্ধারিত মান ব্যবহার করা হোক।
সিনট্যাক্স:
%default param_name value
উদাহরণ:
ধরা যাক, আপনি একটি পিগ স্ক্রিপ্ট লিখেছেন যা কর্মীদের বেতন অনুসারে তাদের ফিল্টার করবে। আপনি চান যদি ব্যবহারকারী কোনো বেতন প্যারামিটার পাস না করেন, তাহলে একটি ডিফল্ট বেতন (যেমন ৩০,০০০) ব্যবহার করা হোক।
%default salary_param 30000
-- Load employee data
employees = LOAD 'employee_data.csv' USING PigStorage(',') AS (id:int, name:chararray, salary:int);
-- Filter employees based on salary parameter
filtered_employees = FILTER employees BY salary > $salary_param;
-- Display the filtered result
DUMP filtered_employees;
এখানে, যদি $salary_param প্যারামিটারটি স্ক্রিপ্ট চালানোর সময় পাস না করা হয়, তবে %default দ্বারা ৩০,০০০ বেতন ডিফল্ট মান হিসেবে নেওয়া হবে।
স্ক্রিপ্ট চালানোর সময়:
যদি আপনি salary_param প্যারামিটার পাস করেন:
pig -param salary_param=50000 employee_script.pigsalary_param এর মান ৫০,০০০ হবে।
যদি আপনি salary_param প্যারামিটার পাস না করেন:
pig employee_script.pigতাহলে %default salary_param 30000 অনুযায়ী, salary_param এর মান ৩০,০০০ হবে।
$param এবং %default এর ব্যবহারিক সুবিধা
- ডাইনামিক প্যারামিটার:
$paramব্যবহার করে আপনি স্ক্রিপ্টের চলার সময় মান প্রদান করতে পারেন, যা স্ক্রিপ্টের লজিক এবং ডেটা প্রসেসিংয়ে পরিবর্তন আনতে সহায়তা করে। - ডিফল্ট মান:
%defaultব্যবহার করে আপনি একটি ডিফল্ট মান নির্ধারণ করতে পারেন, যা আপনাকে স্ক্রিপ্টে প্রতিবার প্যারামিটার পাস না করে স্বয়ংক্রিয়ভাবে মান প্রাপ্ত করতে সহায়তা করে। - সুবিধাজনক স্ক্রিপ্টিং: এই প্যারামিটার সিস্টেম ব্যবহার করে স্ক্রিপ্টে আরও নমনীয়তা আনা যায়, এবং ব্যবহারকারী বা সিস্টেমের চাহিদা অনুযায়ী ডেটা প্রসেসিং করা যায়।
সারাংশ
$param এবং %default পিগের মধ্যে দুটি অত্যন্ত শক্তিশালী ফিচার যা ডাইনামিক এবং ডিফল্ট মান নির্ধারণে ব্যবহৃত হয়। $param একটি চলমান প্যারামিটার যা স্ক্রিপ্টের চলার সময় মান গ্রহণ করে, এবং %default একটি ডিফল্ট মান নির্ধারণ করে যখন কোনো প্যারামিটার পাস করা না হয়। এই প্যারামিটার ফিচারগুলি স্ক্রিপ্ট লেখাকে আরও নমনীয় এবং ব্যবহারযোগ্য করে তোলে।
Read more