Scala Spark中的日期时间转换
看来我无法使Scala Spark中的日期时间转换,scala,apache-spark,Scala,Apache Spark,看来我无法使date\u格式工作。使用我知道的格式处理我的数据(见下文) 我明白了 阅读文档时,我理解date\u格式应接受任何SimpleDateFormat。对吗 我可以通过以下代码的痛苦使其工作: val timestamp_parser = new SimpleDateFormat("MMM-dd-yyyy hh:mm:ss:SSS a (z)") val udf_timestamp_string_to_long = udf[Long, String]( timestamp_parser
date\u格式
工作。使用我知道的格式处理我的数据(见下文)
我明白了
阅读文档时,我理解date\u格式
应接受任何SimpleDateFormat
。对吗
我可以通过以下代码的痛苦使其工作:
val timestamp_parser = new SimpleDateFormat("MMM-dd-yyyy hh:mm:ss:SSS a (z)")
val udf_timestamp_string_to_long = udf[Long, String]( timestamp_parser.parse(_).getTime() )
val udf_timestamp_long_to_sql_timestamp = udf[Timestamp, Long]( new Timestamp(_) )
dat.withColumn("ts", udf_timestamp_long_to_sql_timestamp(udf_timestamp_string_to_long(dat("timestamp")))).select("timestamp", "ts").first
给
res314: org.apache.spark.sql.Row = [Aug-11-2016 09:21:43:749 PM (CEST),2016-08-11 21:21:43.749]
我不确定是否能帮上忙……如果您想将字符串转换为时间戳字段,可能会出现重复,因为您使用了错误的函数<代码>日期\格式用于创建格式化字符串,而不是分析日期。@zero323 Hmmm这太尴尬了。@CedricH。发生在我们当中最好的人身上:)
val timestamp_parser = new SimpleDateFormat("MMM-dd-yyyy hh:mm:ss:SSS a (z)")
val udf_timestamp_string_to_long = udf[Long, String]( timestamp_parser.parse(_).getTime() )
val udf_timestamp_long_to_sql_timestamp = udf[Timestamp, Long]( new Timestamp(_) )
dat.withColumn("ts", udf_timestamp_long_to_sql_timestamp(udf_timestamp_string_to_long(dat("timestamp")))).select("timestamp", "ts").first
res314: org.apache.spark.sql.Row = [Aug-11-2016 09:21:43:749 PM (CEST),2016-08-11 21:21:43.749]