Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换Scala';到目前为止有哪种类型_Scala_Date_Apache Spark - Fatal编程技术网

转换Scala';到目前为止有哪种类型

转换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。我执行以下操作以提取其中一个:

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提取这些时间戳并将它们转换为日期类型