Big Data and Analytics GROUP এবং COGROUP দিয়ে Data Grouping গাইড ও নোট

350

অ্যাপাচি পিগ (Apache Pig) একটি শক্তিশালী ডেটা প্রসেসিং প্ল্যাটফর্ম যা ডিস্ট্রিবিউটেড ডেটা প্রোসেসিংয়ের জন্য হাডুপ (Hadoop) ক্লাস্টারে ব্যবহৃত হয়। ডেটা গ্রুপিং হল ডেটাকে একটি বা একাধিক কলামের ভিত্তিতে গুচ্ছবদ্ধ করার একটি পদ্ধতি। পিগে GROUP এবং COGROUP কমান্ড ব্যবহার করে ডেটা গ্রুপ করা হয়। এই কমান্ডগুলো ডেটার ওপর বিভিন্ন গ্রুপিং অপারেশন প্রয়োগ করতে সহায়তা করে, যা ডেটাকে শ্রেণীবদ্ধ বা সংগ্রহ করতে ব্যবহৃত হয়।


GROUP কমান্ড দিয়ে ডেটা গ্রুপিং

GROUP কমান্ড পিগে একটি নির্দিষ্ট ক্ষেত্র বা কলামের ভিত্তিতে ডেটা গ্রুপ করার জন্য ব্যবহৃত হয়। এটি একটি নতুন গ্রুপ তৈরি করে এবং সেই গ্রুপের জন্য একটি নতুন ডেটাসেট তৈরি করে। এই কমান্ডটি সাধারণত GROUP BY SQL-এর মতো কাজ করে, যেখানে ডেটা নির্দিষ্ট একটি বা একাধিক কলামের ভিত্তিতে গ্রুপ করা হয়।

GROUP কমান্ডের সিনট্যাক্স:

grouped_data = GROUP input_data BY field_name;

এখানে,

  • input_data: ডেটাসেট, যেটি গ্রুপ করা হবে।
  • field_name: সেই ক্ষেত্রের নাম বা কলাম যার ভিত্তিতে ডেটা গ্রুপ করা হবে।

GROUP কমান্ডের উদাহরণ

ধরা যাক, একটি ডেটাসেট রয়েছে যেখানে ব্যক্তি এবং তাদের বয়সের তথ্য রয়েছে এবং আমরা বয়সের ভিত্তিতে ডেটা গ্রুপ করতে চাই।

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Group the data by age
grouped_data = GROUP data BY age;

-- Store the grouped data into an output file
STORE grouped_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, GROUP data BY age কমান্ডটি data ডেটাসেটকে বয়সের ভিত্তিতে গ্রুপ করবে। এই গ্রুপিংয়ের পর, গ্রুপগুলির মধ্যে সংশ্লিষ্ট ডেটা নিয়ে কাজ করা যাবে, যেমন পরবর্তীতে গ্রুপের মধ্যে গণনা করা বা বিভিন্ন ডেটা অপারেশন করা।


COGROUP কমান্ড দিয়ে ডেটা গ্রুপিং

COGROUP কমান্ডটি দুটি বা তার বেশি ডেটাসেটকে একত্রিত করে তাদের মধ্যে সম্পর্কিত ডেটা গ্রুপ করতে ব্যবহৃত হয়। এটি একাধিক ডেটাসেটকে একসাথে গ্রুপ করার জন্য ব্যবহৃত হয়, যেখানে দুটি ডেটাসেটের এক বা একাধিক কলামের ভিত্তিতে গ্রুপ করা হয়।

COGROUP কমান্ডের সিনট্যাক্স:

grouped_data = COGROUP input_data1 BY field_name, input_data2 BY field_name;

এখানে,

  • input_data1, input_data2: দুটি বা তার বেশি ডেটাসেট যেগুলিকে গ্রুপ করা হবে।
  • field_name: সেই ক্ষেত্র বা কলাম যেটির ভিত্তিতে ডেটা গ্রুপ করা হবে।

COGROUP কমান্ডের উদাহরণ

ধরা যাক, দুটি ডেটাসেট রয়েছে:

  1. একটি ডেটাসেট যেখানে ব্যক্তির নাম এবং তাদের বয়সের তথ্য রয়েছে।
  2. একটি অন্য ডেটাসেট যেখানে ব্যক্তির নাম এবং তাদের শহরের তথ্য রয়েছে।

আমরা এই দুটি ডেটাসেটকে নামের ভিত্তিতে গ্রুপ করতে চাই।

data1 = LOAD 'people_data.txt' USING PigStorage(',') AS (name:chararray, age:int);
data2 = LOAD 'city_data.txt' USING PigStorage(',') AS (name:chararray, city:chararray);

-- Co-group the data by name
co_grouped_data = COGROUP data1 BY name, data2 BY name;

-- Store the co-grouped data into an output file
STORE co_grouped_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, COGROUP data1 BY name, data2 BY name কমান্ডটি data1 এবং data2 ডেটাসেটগুলোকে name কলামের ভিত্তিতে গ্রুপ করবে। এতে, একই নামের ব্যক্তির বয়স এবং শহরের তথ্য একত্রিত হবে।

COGROUP এবং GROUP এর মধ্যে পার্থক্য

  • GROUP কমান্ড শুধুমাত্র একটি ডেটাসেটের মধ্যে গ্রুপিং করে, যেখানে একটি নির্দিষ্ট কলামের ভিত্তিতে ডেটা গ্রুপ করা হয়।
  • COGROUP কমান্ড দুটি বা তার বেশি ডেটাসেটের মধ্যে সম্পর্কিত ডেটা গ্রুপ করতে সহায়তা করে, যেখানে একাধিক ডেটাসেটের মধ্যে সম্পর্কিত কলামের ভিত্তিতে ডেটা গ্রুপ করা হয়।

GROUP এবং COGROUP কমান্ডের আরও উদাহরণ

উদাহরণ ১: ডেটা গ্রুপ করা এবং গণনা করা

ধরা যাক, একটি ডেটাসেটে ব্যক্তির নাম এবং তাদের বয়সের তথ্য রয়েছে এবং আমরা বয়সের ভিত্তিতে গ্রুপ করতে চাই এবং প্রতিটি গ্রুপের মধ্যে ব্যক্তির সংখ্যা গণনা করতে চাই।

data = LOAD 'input_data.txt' USING PigStorage(',') AS (name:chararray, age:int);

-- Group the data by age
grouped_data = GROUP data BY age;

-- Count the number of records in each group
counted_data = FOREACH grouped_data GENERATE group, COUNT(data);

-- Store the results into an output file
STORE counted_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, GROUP data BY age ডেটাকে বয়সের ভিত্তিতে গ্রুপ করবে এবং COUNT(data) প্রতিটি গ্রুপের মধ্যে রেকর্ডের সংখ্যা গণনা করবে।

উদাহরণ ২: একাধিক ডেটাসেটের মধ্যে গ্রুপিং

ধরা যাক, দুটি ডেটাসেটে কর্মী এবং তাদের প্রকল্পের তথ্য রয়েছে, এবং আমরা কর্মী এবং প্রকল্পের ভিত্তিতে ডেটা গ্রুপ করতে চাই।

employees = LOAD 'employee_data.txt' USING PigStorage(',') AS (name:chararray, project_id:int);
projects = LOAD 'project_data.txt' USING PigStorage(',') AS (project_id:int, project_name:chararray);

-- Co-group employees and projects by project_id
co_grouped_data = COGROUP employees BY project_id, projects BY project_id;

-- Store the results in an output file
STORE co_grouped_data INTO 'output_data.txt' USING PigStorage(',');

এখানে, COGROUP employees BY project_id, projects BY project_id দুটি ডেটাসেটকে project_id এর ভিত্তিতে গ্রুপ করবে এবং কর্মী এবং প্রকল্পের সম্পর্কিত তথ্য একত্রিত করবে।


সারাংশ

  • GROUP কমান্ড পিগে একটি ডেটাসেটের মধ্যে একটি নির্দিষ্ট কলামের ভিত্তিতে ডেটা গ্রুপ করতে ব্যবহৃত হয়।
  • COGROUP কমান্ড একাধিক ডেটাসেটের মধ্যে সম্পর্কিত কলামের ভিত্তিতে ডেটা গ্রুপ করতে ব্যবহৃত হয়।
  • দুটি কমান্ডই ডেটাকে গুচ্ছবদ্ধ বা শ্রেণীবদ্ধ করতে সাহায্য করে, যার মাধ্যমে ডেটার ওপর বিভিন্ন ধরনের ট্রান্সফরমেশন এবং অ্যানালাইসিস করা যায়।

ডেটা গ্রুপিংয়ের মাধ্যমে পিগে আরও সুনির্দিষ্ট এবং কার্যকরী ডেটা প্রসেসিং করা সম্ভব হয়।

Content added By
Promotion

Are you sure to start over?

Loading...