Sobes.tech
Middle

Spark'ta belirli bir tarihte doğum tarihine göre yaşları nasıl kutular halinde alırız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Apache Spark'ta, doğum tarihine göre belirli bir tarihte yaşları binlere ayırmak için aşağıdaki adımlar izlenebilir:

  1. Yaşı, doğum tarihinden belirli tarihe çıkararak yıl cinsinden hesaplayın.
  2. Bin sınırlarını belirleyin (örneğin, 0-10, 11-20, 21-30 vb.).
  3. when veya bucketizer fonksiyonunu kullanarak yaşları binlere dağıtın.

PySpark örneği:

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"])

# Referans tarihi
reference_date = F.lit("2024-06-01")

# Tarihleri dönüştür
df = df.withColumn("birth_date", F.to_date("birth_date"))

# Yaşı hesapla
df = df.withColumn(
    "age",
    F.floor(F.months_between(reference_date, F.col("birth_date")) / 12)
)

# Yaş binlerini belirle
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()

Sonuç olarak, age_bin sütununda yaşın hangi bin'e düştüğü gösterilir. Ayrıca, bu indeksler okunabilir etiketlerle eşleştirilebilir.