Sobes.tech
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:

  1. Tug'ilgan sanani berilgan sana bilan ayirish orqali yoshni yillarda hisoblash.
  2. Bin chegaralarini belgilash (masalan, 0-10, 11-20, 21-30 va hokazo).
  3. when yoki bucketizer funksiyasidan 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.