Scala中的DateTime格式混淆

tat*_*ler 1 scala jodatime apache-spark

所以我在.csv文件中有以下数据(这只是前几行) -

time                  temp
2015-08-14 00:00:05   30.00
2015-08-14 00:00:15   31.25
2015-08-14 00:00:25   33.45
2015-08-14 00:00:35   34.76
2015-08-14 00:00:45   36.43
Run Code Online (Sandbox Code Playgroud)

然后我创建以下案例类 -

scala> case class Temps(time: org.joda.time.format.DateTimeFormat, temp: String)
Run Code Online (Sandbox Code Playgroud)

然后我的目标是通过创建解析函数来创建RDD

scala> def parse(line: String) = {
       val data = line.split(',')
       val time = data(0).????
       val temp= data(1).toString
       Temps(time, temp)
       }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我该把什么放在哪里?在上面?我不完全确定在这种情况下如何格式化DateTime.

che*_*ohi 6

首先,对于你Tempstime 类型应该是:org.joda.time.DateTime,DateTimeFormat是一个用于创建的工厂DateTimeFormatter(这用于格式化时间).

其次,你可以使用DateTimeFormatter.parseDateTimeparse最新stringDateTime

所以这段代码可能应该是:

 case class Temps(time: DateTime, temp: String)

 val dateTimeFormatter = DateTimeFormat.forPattern("yyyy-mm-dd HH:mm:ss")
 def parse(line: String) = {
       val data = line.split(',')
       val time = dateTimeFormatter.parseDateTime(data(0))
       val temp= data(1).toString
       Temps(time, temp)
 }
Run Code Online (Sandbox Code Playgroud)