Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Scala处理Spark中的日期?_Scala_Date_Apache Spark_Dataframe_Rdd - Fatal编程技术网

如何使用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()

感谢马克的再次及时回复!这对我很有效,这次我也有机会接受你的回答:)