Как обрабатывать даты в 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 2

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()