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

Alt*_*ift 2 datetime r apache-spark apache-spark-sql sparkr

我有一个从 MySQL(通过 json 文件)上传到 SparkR 的正式类 DataFrame 对象,其中包含这样的格式化字符串:“2012-07-02 20:14:00”

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

zer*_*323 5

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
Run Code Online (Sandbox Code Playgroud)