Ich versuche, einen Wochentagszeichenfolgennamen (z. B. DIENSTAG) in eine ganze Zahl (z. B. 3) zu konvertieren. Ich habe unten eine Karte geschrieben, bin mir aber nicht sicher, wie ich sie anwenden soll.Spark SQL: Konvertieren eines Wochentagsnamens in eine ganze Zahl
import org.apache.spark.sql.functions.lower
val dayNameToInteger = Map(
"sunday" -> 1,
"monday" -> 2,
"tuesday" -> 3,
"wednesday" -> 4,
"thursday" -> 5,
"friday" -> 6,
"saturday" -> 7)
var input = sqlContext.createDataFrame(Seq(
(0L, "SUNDAY", 34),
(1L, "Monday", 31),
(2L, "tuesday", 25)
)).toDF("id", "day_of_week", "value")
scala> input.show
+---+-----------+-----+
| id|day_of_week|value|
+---+-----------+-----+
| 0| SUNDAY| 34|
| 1| Monday| 31|
| 2| tuesday| 25|
+---+-----------+-----+
var output = input.select($"id", dayNameToInteger(lower(input("day_of_week"))))
<console>:27: error: type mismatch;
found : org.apache.spark.sql.Column
required: String
var output = input.select($"id", dayNameToInteger(lower(input("day_of_week"))))