在 SparkR 中将字符串转换为日期时间?

Posted

技术标签:

【中文标题】在 SparkR 中将字符串转换为日期时间?【英文标题】:Convert string to datetime in SparkR? 【发布时间】:2015-12-23 04:45:47 【问题描述】:

我有一个从 mysql 上传到 SparkR 的 Formal Class DataFrame 对象(通过 json 文件),其中包含如下格式的字符串: "2012-07-02 20:14:00"

我需要将这些转换为 SparkR 中的日期时间类型,但这似乎还不支持。是否有未记录的功能或使用 UDF 执行此操作的方法? (注意。我之前实际上没有尝试过创建 SparkR UDF,所以我在这里抓住了稻草。)

【问题讨论】:

【参考方案1】:

Spark SQL 不支持 R UDF,但在这种特殊情况下,您可以简单地转换为 timestamp

df <- createDataFrame(sqlContext, 
  data.frame(dts=c("2012-07-02 20:14:00", "2015-12-28 00:10:00")))
dfWithTimestamp <- withColumn(df, "ts", cast(df$dts, "timestamp"))

printSchema(dfWithTimestamp)
## root
##  |-- dts: string (nullable = true)
##  |-- ts: timestamp (nullable = true)

head(dfWithTimestamp)
##                   dts                  ts
## 1 2012-07-02 20:14:00 2012-07-02 20:14:00
## 2 2015-12-28 00:10:00 2015-12-28 00:10:00

【讨论】:

谢谢!我实际上是使用 unix_timestamp 完成的,但我会保留它以供将来参考。

以上是关于在 SparkR 中将字符串转换为日期时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将字符串转换为日期时间[重复]

在numpy(python)中将日期时间字符串转换为日期时间

如何在c#中将字符串转换为日期[重复]

如何在 SQL Server 中将字符串转换为日期时间?

如何在android中将字符串转换为日期时间[关闭]

如何在Android中将时间戳字符串转换为日期[重复]