我有两个字符串列c1dt和c2tm的数据帧,它的格式分别是yyyymmdd和yyyymmddTHHmmss.SSSz . 现在我想将这些列转换为日期类型和时间戳类型列,我尝试了以下但它不起作用它将列值显示为null .
val newdf = df.withColumn("c1dt", unix_timestmap("c1dt","yyyymmdd").cast("date").withColumn("c2tm","yyyymmddTHHmmss.SSSz").cast("timestamp"))
当我调用newdf.show时,两个列的值都显示为null . 如果我打印原始数据帧df,我会看到日期和时间戳值 .
1 回答
由于您的时间戳格式不是默认格式,因此您最好的选择可能是创建一个udf .
如果您的数据来自CSV,您可以在加载数据之前指定时间戳格式,整体速度会更快