2016-04-22 17 views
2

我有一個如下所述的平面文件。如何使用Scala處理Spark中的日期?

id,name,desg,tdate 
1,Alex,Business Manager,2016-01-01 

我正在使用Spark上下文來讀取此文件,如下所示。

val myFile = sc.textFile("file.txt") 

我想生成該文件火花數據框,我使用下面的代碼來做到這一點。

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

這給了我一個DataFrame,其id爲int,其餘的列爲String。

我想最後一欄,tdate,待澆鑄到日期類型。

我該怎麼做?

回答

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

感謝馬克再及時答覆!它爲我工作,這次我有機會接受你的答案,以及:) – Rahul