我想将 Spark 数据框列从其值小时分钟秒转换为
例如“01:12:17.8370000”
将成为 4337 感谢您的评论。
或“00:00:39.0390000”
将变为 39 秒。
我已阅读此问题,但我不知道如何使用此代码来转换我的 Spark 数据框列。
像这样的东西
df.withColumn("duration",col("duration")....)
Run Code Online (Sandbox Code Playgroud)
我正在使用 scala 2.10.5 和 Spark 1.6
谢谢
我想删除所有重复条目的记录但是说时间戳的差异可以是任何时间量的偏移量,但为简单起见将使用2分钟.
+-------------------+-----+----+
|Date |ColA |ColB|
+-------------------+-----+----+
|2017-07-04 18:50:21|ABC |DEF |
|2017-07-04 18:50:26|ABC |DEF |
|2017-07-04 18:50:21|ABC |KLM |
+-------------------+-----+----+
Run Code Online (Sandbox Code Playgroud)
我希望我的数据帧只有行
+-------------------+-----+----+
|Date |ColA |ColB|
+-------------------+-----+----+
|2017-07-04 18:50:26|ABC |DEF |
|2017-07-04 18:50:21|ABC |KLM |
+-------------------+-----+----+
Run Code Online (Sandbox Code Playgroud)
我试过这样的东西,但这并没有删除重复.
val joinedDfNoDuplicates = joinedDFTransformed.as("df1").join(joinedDFTransformed.as("df2"), col("df1.ColA") === col("df2.ColA") &&
col("df1.ColB") === col("df2.ColB") &&
&& abs(unix_timestamp(col("Date")) - unix_timestamp(col("Date"))) > offset
)
Run Code Online (Sandbox Code Playgroud)
现在,我只是在这里选择distinct或group by 通过Spark group查找时间戳的最小值 基于某些列的数据上的数据框但是我想要一个更健壮的解决方案,原因是该间隔之外的数据可能是有效的数据.此外,根据要求,可以在5s或5分钟内改变偏移.
有人向我提到有关创建UDF比较日期以及所有其他列是否相同但我不确定如何做到这一点,我要么过滤掉行或添加一个标志,然后删除那些行任何帮助都会很大赞赏.
这里有类似的SQL问题带有不同时间戳的重复条目
谢谢!