Конвертировать строку в datetime в SparkR?

У меня есть объект DataFrame формального класса, который был загружен в SparkR из MySQL (через файл json), который содержит отформатированные строки, например: "2012-07-02 20:14:00"

Мне нужно преобразовать их в тип datetime в SparkR, но пока это не поддерживается. Есть ли недокументированная функция или рецепт для этого с UDF? (Nb. Я на самом деле не пытался создать UDF SparkR раньше, поэтому я хватаюсь за соломинку, здесь.)

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
Другие вопросы по тегам