scala - spark scala中的时间戳比较返回不正确的值
问题描述
我正在比较我的数据集/数据框中的 2 个时间戳列并生成一个新列,但它给出的值不正确
dateField1 = 2021-01-12 18:58:37.725
dateField2 = 2021-01-12 18:00:00
df = df.withColumn("Flag",when($"dateField1" >= $"dateField2",true).otherwise(false))
在上面,理想情况下它应该是 true 但新列标志的值为false。
解决方案
我试图根据问题中的数据创建示例输入并实现如下:
import org.apache.spark.sql.functions._
val df = Seq(("2021-01-12 18:58:37.725","2021-01-12 18:00:00")).toDF("Date1","Date2")
val df1 = df.withColumn("Date1",$"Date1".cast("Timestamp")).withColumn("Date2",$"Date2".cast("Timestamp"))
val df2 = df1.withColumn("Flag",when($"Date1" >= $"Date2",true).otherwise(false))
display(df2) // databricks output style
您可以看到如下输出:
推荐阅读
- c# - Endless Runner“跑步机”与对象池的差距
- playframework - logback.xml - 模式布局 - 如何配置响应的内容长度
- javascript - 为选择的js添加向下图标以多选
- angularjs - AngularJs 和 prerender.io
- assembly - 为什么编译器保留一点堆栈空间而不是整个数组大小?
- amazon-ec2 - aws 引导脚本不适用于 cli 命令设置
- c# - 如何在初始化渲染器之前调用方法 [Wpf]
- c# - 如何从 GridView 检索我的 ProductID?
- java - Liferay Json Web 服务参数输入
- javascript - Javascript - 比较两个数组。如果在两者中都找到对象,请更改它