Middle
Sparkda tug'ilgan kuniga asoslangan holda yoshni binlar bo'yicha qanday olish mumkin?
sobes.tech AI
AIdan javob
Apache Spark'da, tug'ilgan sana bo'yicha ma'lumotlarni belgilangan sana uchun binlarga ajratish uchun quyidagi bosqichlarni bajarish mumkin:
- Tug'ilgan sanani berilgan sana bilan ayirish orqali yoshni yillarda hisoblash.
- Bin chegaralarini belgilash (masalan, 0-10, 11-20, 21-30 va hokazo).
whenyokibucketizerfunksiyasidan foydalanib, yoshni binlarga taqsimlash.
PySpark misoli:
from pyspark.sql import functions as F
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
data = [
("2000-05-15",),
("1985-10-30",),
("2010-01-01",)
]
df = spark.createDataFrame(data, ["birth_date"])
# Ma'lumot uchun sana
reference_date = F.lit("2024-06-01")
# Matnlarni sanaga aylantirish
df = df.withColumn("birth_date", F.to_date("birth_date"))
# Yoshni hisoblash
df = df.withColumn(
"age",
F.floor(F.months_between(reference_date, F.col("birth_date")) / 12)
)
# Yosh binlarini belgilash
bins = [0, 10, 20, 30, 40, 50, 60, 100]
from pyspark.ml.feature import Bucketizer
bucketizer = Bucketizer(
splits=bins,
inputCol="age",
outputCol="age_bin"
)
df = bucketizer.transform(df)
df.show()
Natijada, age_bin ustunida yoshning qaysi binga tushishini ko'rsatadi. Bu indekslarni o'qilishi oson etiketlar bilan bog'lash mumkin.