scala - 使用 Spark/scala 将字符串转换为 DataFrame
问题描述
我想将字符串列转换为时间戳列,但它始终返回空值。
val t = unix_timestamp(col("tracking_time"),"MM/dd/yyyy").cast("timestamp")
val df= df2.withColumn("ts", t)
任何想法 ?
谢谢你 。
解决方案
确保您String column
与指定的格式匹配MM/dd/yyyy
。
- 如果不匹配
null
则将被退回。
Example:
val df2=Seq(("12/12/2020")).toDF("tracking_time")
val t = unix_timestamp(col("tracking_time"),"MM/dd/yyyy").cast("timestamp")
df2.withColumn("ts", t).show()
//+-------------+-------------------+
//|tracking_time| ts|
//+-------------+-------------------+
//| 12/12/2020|2020-12-12 00:00:00|
//+-------------+-------------------+
df2.withColumn("ts",unix_timestamp(col("tracking_time"),"MM/dd/yyyy").cast("timestamp")).show()
//+-------------+-------------------+
//|tracking_time| ts|
//+-------------+-------------------+
//| 12/12/2020|2020-12-12 00:00:00|
//+-------------+-------------------+
//(or) by using to_timestamp function.
df2.withColumn("ts",to_timestamp(col("tracking_time"),"MM/dd/yyyy")).show()
//+-------------+-------------------+
//|tracking_time| ts|
//+-------------+-------------------+
//| 12/12/2020|2020-12-12 00:00:00|
//+-------------+-------------------+
推荐阅读
- apache-storm - 带有升级版 KafkaSpout 的 Storm Pacemaker
- android - 此 Realm 实例已关闭
- php - 如何在 PHP 中将字符串拆分为不同的部分?
- hyperledger-composer - 有没有办法在超级账本作曲家中查询/访问可用事务类的列表?
- node.js - 将 webview 视图设置为窗口大小
- c++ - QObject::findChild 为添加到状态栏的 QLabel 返回 0
- node.js - Nodejs 请求的行为不同于 Postman 和 Curl
- botframework - 如何使用 Skype for business bot 中的电子邮件 ID 获取 Microsoft Graph 访问令牌以将事件添加到日历
- android - Arduino蓝牙通信问题
- java - 编码的逗号被忽略并被转换为数组