转换Scala';到目前为止有哪种类型
我有一个包含日期列的DF。我执行以下操作以提取其中一个:转换Scala';到目前为止有哪种类型,scala,date,apache-spark,Scala,Date,Apache Spark,我有一个包含日期列的DF。我执行以下操作以提取其中一个: df.agg(min(substring($"nom_fic", 17, 10))).first.get(0) // gives a variable whith type Any 如何将其转换为日期类型?我试过: dtmin = df.agg(min(substring($"nom_fic", 17, 10))).first.get(0).asInstanceOf[Date] 它返回: java.lang.ClassCastExc
df.agg(min(substring($"nom_fic", 17, 10))).first.get(0) // gives a variable whith type Any
如何将其转换为日期类型?我试过:
dtmin = df.agg(min(substring($"nom_fic", 17, 10))).first.get(0).asInstanceOf[Date]
它返回:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
谢谢大家! 火花>=2.2 to_时间戳的可以如下所示使用
import org.apache.spark.sql.functions.to_timestamp
scala> df.show(10)
+-------------------+
| dts|
+-------------------+
|11/26/2019 01:01:01|
|11/20/2019 01:01:01|
+-------------------+
val new_df = df.withColumn("ts", ts).show(2, false)
scala> new_df.show(10)
+-------------------+-------------------+
| dts| ts|
+-------------------+-------------------+
|11/26/2019 01:01:01|2019-11-26 01:01:01|
|11/20/2019 01:01:01|2019-11-20 01:01:01|
+-------------------+-------------------+
scala> val min_val = new_df.agg(min("ts")).first.get(0)
min_val: Any = 2019-11-20 01:01:01.0
scala> val max_val = new_df.agg(max("ts")).first.get(0)
max_val: Any = 2019-11-26 01:01:01.0
如果我想提取时间戳并在我的代码中使用它,你可以在时间戳格式的代码中使用
ts
,我试过了。ts的类型为org.apache.spark.sql.Column。我只需要那一列中的一个值,你能给我一个小例子说明你想做什么吗。考虑到我有多个字符串格式的时间戳。我想得到这些时间戳的最小值(val min=…)和最大值(val max=…),然后使用最小值和最大值作为日期变量(例如,我想将它们插入Oracle表中。我的问题是如何从DF提取这些时间戳并将它们转换为日期类型