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:
- Das Alter in Jahren berechnen, indem man das Geburtsdatum vom angegebenen Datum subtrahiert.
- Die Grenzen der Bins festlegen (z.B. 0-10, 11-20, 21-30 usw.).
- Die Funktion
whenoderbucketizerverwenden, 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.