如何使用Scala处理Spark中的日期?
我有一个平面文件,看起来像下面提到的如何使用Scala处理Spark中的日期?,scala,date,apache-spark,dataframe,rdd,Scala,Date,Apache Spark,Dataframe,Rdd,我有一个平面文件,看起来像下面提到的 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 myFile
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()
这给了我一个数据帧,id为int,其余列为String
我希望最后一列tdate被转换为date类型
我该怎么做呢?您只需要将
字符串
转换为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()
感谢马克的再次及时回复!这对我很有效,这次我也有机会接受你的回答:)