Sobes.tech
Middle

Wie erhält man in Spark das Alter in Bins basierend auf dem Geburtsdatum an einem bestimmten Datum?

sobes.tech KI

Antwort von AI

In Apache Spark, um das Möglichkeiten, das Alter in Bins basierend auf dem Geburtsdatum an einem bestimmten Datum zu ermitteln, sind folgende Schritte:

  1. Das Alter in Jahren berechnen, indem man das Geburtsdatum vom angegebenen Datum subtrahiert.
  2. Die Grenzen der Bins festlegen (z.B. 0-10, 11-20, 21-30 usw.).
  3. Die Funktion when oder bucketizer verwenden, um das Alter auf die Bins zu verteilen.

Beispiel in PySpark:

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

# Referenzdatum für die Altersberechnung
reference_date = F.lit("2024-06-01")

# Strings in Daten umwandeln
df = df.withColumn("birth_date", F.to_date("birth_date"))

# Alter in Jahren berechnen
df = df.withColumn(
    "age",
    F.floor(F.months_between(reference_date, F.col("birth_date")) / 12)
)

# Alters-Bins definieren
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()

Das Ergebnis ist, dass in der Spalte age_bin der Bin-Index erscheint, in den das Alter fällt. Diese Indizes können auch mit lesbaren Labels verknüpft werden.