Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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 Spark:返回空值的字符串到日期的数据类型转换_Scala_Dataframe_Apache Spark - Fatal编程技术网

Scala Spark:返回空值的字符串到日期的数据类型转换

Scala Spark:返回空值的字符串到日期的数据类型转换,scala,dataframe,apache-spark,Scala,Dataframe,Apache Spark,我有一个dataframe和字符串来转换某些列的数据类型,因此我使用以下函数: val rawDF = df.selectExpr(df.columns.map(cn => { if (Set("speed", "weight", "height").contains(cn)) s"cast($cn as double) as $cn" else if (Set("isActive").contains(cn)) s"cast

我有一个dataframe和字符串来转换某些列的数据类型,因此我使用以下函数:

val rawDF = df.selectExpr(df.columns.map(cn => {
                if (Set("speed", "weight", "height").contains(cn)) s"cast($cn as double) as $cn"
                else if (Set("isActive").contains(cn)) s"cast($cn as date) as $cn"
                else cn
            }):_*)
但问题是:对于日期转换(字符串到日期数据类型),我得到的是空值。

我的日期值为:
31.12.2016

您的日期字符串不是默认格式。您必须根据已知的格式转换为时间戳

例如:

输出:

+----------+
|isActive  |
+----------+
|2016-12-31|
+----------+

您的日期字符串不是默认格式。您必须根据已知的格式转换为时间戳

例如:

输出:

+----------+
|isActive  |
+----------+
|2016-12-31|
+----------+

那么其余的专栏呢??在这种情况下,我需要逐个选择列。我已经根据selectExpr更新了答案。如果您有更多的日期类型列,但格式不同,则需要单独处理。它似乎工作正常。。如果我发现任何问题,我会告诉你。谢谢你的帮助和时间。那么其他专栏呢??在这种情况下,我需要逐个选择列。我已经根据selectExpr更新了答案。如果您有更多的日期类型列,但格式不同,则需要单独处理。它似乎工作正常。。如果我发现任何问题,我会告诉你。谢谢你的帮助和时间。