Middle
Ինչպես ստանալ Spark-ում տարիքն բիներում՝ ծննդյան ամսաթվի հիման վրա որոշակի ամսաթվի համար։
sobes.tech AI
Պատասխան AI-ից
Apache Spark-ում, ծննդյան ամսաթվի վրա հիմնված տարիքային բիների ստանալու համար, կարող եք հետևել հետևյալ քայլերին՝
- Հաշվեք տարիք տարիներով՝ հանելով ծննդյան ամսաթիվը նշված ամսաթվից:
- Հստակեցրեք բիների սահմանները (օրինակ՝ 0-10, 11-20, 21-30 և այլն):
- Օգտագործեք
whenկամbucketizerֆունկցիան՝ տարիքին համապատասխան բիներ բաժանելու համար:
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"])
# Հղումային ամսաթիվ՝ տարիք հաշվարկելու համար
reference_date = F.lit("2024-06-01")
# Տողերի փոխակերպում ամսաթվեր
df = df.withColumn("birth_date", F.to_date("birth_date"))
# Տարեկան տարիք հաշվարկել
df = df.withColumn(
"age",
F.floor(F.months_between(reference_date, F.col("birth_date")) / 12)
)
# Տարեկան բիների սահմանները
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()
Արդյունքում, age_bin սյունակում կերևա այն բինի ինդեքսը, որի մեջ է ընկնում տարիքային արժեքը։ Այս ինդեքսները կարելի է կապել ընթեռնելի նշանների հետ։