Scala Spark:返回空值的字符串到日期的数据类型转换
我有一个dataframe和字符串来转换某些列的数据类型,因此我使用以下函数: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
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更新了答案。如果您有更多的日期类型列,但格式不同,则需要单独处理。它似乎工作正常。。如果我发现任何问题,我会告诉你。谢谢你的帮助和时间。