Spark SQL এ Conditional Expressions (যেমন WHEN, IF, CASE) ব্যবহার করে শর্তের উপর ভিত্তি করে ডেটার মান পরিবর্তন করা বা নতুন মান তৈরি করা যায়। এগুলো সাধারণত ডেটা ট্রান্সফরমেশন ও কন্ডিশনাল লজিক প্রয়োগে ব্যবহৃত হয়। চলুন, এগুলো কীভাবে Spark SQL এ ব্যবহার করা যায়, তা বিস্তারিতভাবে দেখি।
WHEN-THEN Expression
Spark SQL-এ WHEN এবং THEN শর্তযুক্ত এক্সপ্রেশন ব্যবহার করে আমরা নির্দিষ্ট শর্তের উপর ভিত্তি করে ডেটা কন্ডিশনাল ট্রান্সফর্ম করতে পারি। সাধারণত এটি CASE WHEN এর অংশ হিসেবে ব্যবহৃত হয়, যা SQL-এ কন্ডিশনাল লজিক তৈরি করতে ব্যবহৃত হয়।
WHEN Example:
from pyspark.sql.functions import when
# WHEN expression দিয়ে কলামের মান পরিবর্তন করা
df.select(
"name",
"age",
when(df["age"] > 30, "Senior").otherwise("Junior").alias("age_group")
).show()
এখানে:
when(df["age"] > 30, "Senior"): যদিage৩০ এর বেশি হয়, তবে "Senior" হবে।otherwise("Junior"): যদি শর্তটি পূর্ণ না হয়, তবে "Junior" হবে।
এটি একটি নতুন কলাম age_group তৈরি করবে, যা নির্ধারণ করবে ব্যবহারকারীর বয়সের ভিত্তিতে তারা "Senior" নাকি "Junior"।
CASE WHEN Expression
SQL এর CASE WHEN এক্সপ্রেশন Spark SQL এ একইভাবে কাজ করে। এটি WHEN এর সাথে শর্ত এবং THEN এর মাধ্যমে আউটপুট প্রদান করে।
CASE WHEN Example:
from pyspark.sql.functions import expr
# CASE WHEN expression দিয়ে মান পরিবর্তন
df.select(
"name",
"age",
expr("CASE WHEN age > 30 THEN 'Senior' ELSE 'Junior' END").alias("age_group")
).show()
এখানে:
CASE WHEN age > 30 THEN 'Senior' ELSE 'Junior' END: এটিageএর মানের ভিত্তিতে "Senior" বা "Junior" রিটার্ন করবে।expr()ফাংশন SQL স্টাইল এক্সপ্রেশন ব্যবহার করতে সাহায্য করে।
IF Expression
Spark SQL-এ IF এক্সপ্রেশন সাধারণত when এর মতো কাজ করে। এটি খুবই সরল এবং স্টেটমেন্ট হিসেবে কাজ করে। IF সাধারণত একক শর্তের জন্য ব্যবহার করা হয়।
IF Example:
from pyspark.sql.functions import col
# IF expression ব্যবহার করে শর্তযুক্ত মান নির্ধারণ
df.select(
"name",
"age",
(col("age") > 30).cast("string").alias("is_senior")
).show()
এখানে:
(col("age") > 30): এটি যদিage৩০ এর বেশি হয় তবেTrueএবং নাহলেFalseরিটার্ন করবে।.cast("string"): ফলাফলটি স্ট্রিং হিসেবে কনভার্ট করা হয়েছে।
Multiple Conditions with WHEN
একাধিক শর্ত সংযুক্ত করে WHEN এক্সপ্রেশন ব্যবহার করা যেতে পারে। এতে একাধিক শর্তের উপর ভিত্তি করে ডেটা ট্রান্সফর্ম করা সম্ভব হয়।
Multiple Conditions Example:
df.select(
"name",
"age",
when(df["age"] < 18, "Child")
.when((df["age"] >= 18) & (df["age"] <= 60), "Adult")
.otherwise("Senior")
.alias("age_category")
).show()
এখানে:
- প্রথম শর্তে,
age১৮ এর কম হলে "Child" হবে। - দ্বিতীয় শর্তে,
age১৮ থেকে ৬০ এর মধ্যে হলে "Adult" হবে। - অন্যথায়, "Senior" হবে।
Conditional Expressions এর সারাংশ:
- WHEN-THEN: এটি একটি শর্তের উপর ভিত্তি করে ডেটা ট্রান্সফর্ম করতে ব্যবহৃত হয়।
- CASE WHEN: এটি SQL এর মতো শর্তযুক্ত এক্সপ্রেশন যেখানে একাধিক শর্ত দেওয়া যায় এবং প্রতিটি শর্তের জন্য আলাদা আউটপুট রিটার্ন করা যায়।
- IF: এটি খুব সাধারণ শর্ত, যেটি সাধারণত দুটি শর্তের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়।
সারাংশ
Spark SQL-এ WHEN, CASE, এবং IF এর মতো কন্ডিশনাল এক্সপ্রেশন ব্যবহার করে আমরা ডেটার মধ্যে শর্তসাপেক্ষ লজিক প্রয়োগ করতে পারি। এগুলো ডেটাকে শর্তানুসারে ট্রান্সফর্ম বা ক্যাটাগরি করতে সহায়ক হয়, যা ডেটা অ্যানালাইসিস ও ফিচার ইঞ্জিনিয়ারিং এর জন্য খুবই উপযোগী।
Read more