Scala 中的日期时间格式混乱
DateTime formatting confusion in Scala
所以我在 .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
然后我创建以下案例 class -
scala> case class Temps(time: org.joda.time.format.DateTimeFormat, temp: String)
然后我打算通过创建解析函数来创建一个 RDD
scala> def parse(line: String) = {
val data = line.split(',')
val time = data(0).????
val temp= data(1).toString
Temps(time, temp)
}
所以我的问题是,我应该把什么放在 ???在上面?我不完全确定如何在这种情况下设置 DateTime 的格式。
首先,对于你的 Temps
的 time
type 应该是:org.joda.time.DateTime
,DateTimeFormat
是一个 factory 用于创建DateTimeFormatter
(这是用来格式化时间的)。
其次,可以使用DateTimeFormatter.parseDateTime
到parse
日期string
到DateTime
所以这段代码可能应该是:
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)
}
所以我在 .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
然后我创建以下案例 class -
scala> case class Temps(time: org.joda.time.format.DateTimeFormat, temp: String)
然后我打算通过创建解析函数来创建一个 RDD
scala> def parse(line: String) = {
val data = line.split(',')
val time = data(0).????
val temp= data(1).toString
Temps(time, temp)
}
所以我的问题是,我应该把什么放在 ???在上面?我不完全确定如何在这种情况下设置 DateTime 的格式。
首先,对于你的 Temps
的 time
type 应该是:org.joda.time.DateTime
,DateTimeFormat
是一个 factory 用于创建DateTimeFormatter
(这是用来格式化时间的)。
其次,可以使用DateTimeFormatter.parseDateTime
到parse
日期string
到DateTime
所以这段代码可能应该是:
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)
}