我有一个平面文件,如下所示。
id,name,desg,tdate
1,Alex,Business Manager,2016-01-01
我正在使用Spark Context来读取此文件,如下所示。
val myFile = sc.textFile("file.txt")
我想从这个文件生成Spark DataFrame,我使用以下代码来执行此操作。
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()
这给了我一个id为int的DataFrame,其余的列为String。
我希望将最后一列tdate转换为日期类型。
我该怎么做?
答案 0 :(得分:6)
您只需将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()