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:
- Yaşı, doğum tarihinden belirli tarihe çıkararak yıl cinsinden hesaplayın.
- Bin sınırlarını belirleyin (örneğin, 0-10, 11-20, 21-30 vb.).
whenveyabucketizerfonksiyonunu 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.