Spark中如何用withColumn添加默认值为null的String类型列?
解决方案
直接通过cast显式指定列的String类型即可,代码如下:
.withColumn("column-name", lit(null).cast(StringType))
或者也可以使用SQL表达式的写法:
.withColumn("column-name", expr("cast(null as string)"))
原因说明
你原代码中lit(null: String)生成Void类型列的问题,是因为Scala里null本身缺乏明确的类型标识,即便显式声明null: String,Spark的类型推断机制仍无法正确识别为String类型,最终默认解析为Void。而通过cast(StringType)强制指定类型后,既能保留null默认值,又能让Spark推断出正确的String类型,完全适配依赖Schema推断的场景。
内容的提问来源于stack exchange,提问作者sil
相关产品推荐
相关产品推荐

