Как обрабатывать даты в Spark с помощью Scala?
У меня есть плоский файл, который выглядит так, как описано ниже.
id,name,desg,tdate
1,Alex,Business Manager,2016-01-01
Я использую контекст Spark для чтения этого файла следующим образом.
val myFile = sc.textFile("file.txt")
Я хочу создать фрейм данных Spark из этого файла, и для этого я использую следующий код.
case class Record(id: Int, name: String,desg:String,tdate:String)
val myFile1 = myFile.map(x=>x.split(",")).map {
case Array(id, name,desg,tdate) => Record(id.toInt, name,desg,tdate)
}
myFile1.toDF()
Это дает мне фрейм данных с идентификатором int и остальными столбцами в виде строки.
Я хочу, чтобы последний столбец, tdate, был приведен к типу даты.
Как я могу это сделать?
1 ответ:
Вам просто нужно преобразовать
String
в объектjava.sql.Date
. Тогда ваш код может просто стать:import java.sql.Date case class Record(id: Int, name: String,desg:String,tdate:Date) val myFile1 = myFile.map(x=>x.split(",")).map { case Array(id, name,desg,tdate) => Record(id.toInt, name,desg,Date.valueOf(tdate)) } myFile1.toDF()