Middle
Spark-da doğum tarixinə əsasən müəyyən bir tarixdə yaş qruplarını necə əldə etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Apache Spark-da, doğum tarixinə əsasən müəyyən bir tarixdə yaşları binlərə ayırmaq üçün aşağıdakı addımları izləyə bilərsiniz:
- Doğum tarixindən verilmiş tarixə qədər olan fərqi illərlə hesablayın.
- Bin sərhədlərini müəyyən edin (məsələn, 0-10, 11-20, 21-30 və s.).
whenvə yabucketizerfunksiyasını istifadə edərək yaşları binlərə bölün.
PySpark nümunəsi:
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"])
# İstinad tarixi
reference_date = F.lit("2024-06-01")
# Tarixləri çevirmək
df = df.withColumn("birth_date", F.to_date("birth_date"))
# Yaşı hesablamaq
df = df.withColumn(
"age",
F.floor(F.months_between(reference_date, F.col("birth_date")) / 12)
)
# Yaş binlərini təyin etmək
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()
Nəticədə, age_bin sütununda yaşın hansı binə aid olduğu göstəriləcək. Bu indeksləri oxunaqlı etiketlərlə də əlaqələndirmək mümkündür.