我有一个使用DataFrame.withColumn
test("SparkSQLTest") {
val spark = SparkSession.builder().master("local").appName("SparkSQLTest").getOrCreate()
import spark.implicits._
var df = spark.createDataset(
Seq(
("1", "2"),
("3", "4")
)
).toDF("a", "b")
df = df.withColumn("c", functions.lit(null.asInstanceOf[String]).as[String])
df.printSchema()
df.show(truncate = false)
}
输出模式为:
root
|-- a: string (nullable = true, metadata = {})
|-- b: string (nullable = true, metadata = {})
|-- c: null (nullable = true, metadata = {})
c
列的类型为null,我认为它是字符串。如果它为null,则由于不支持null数据类型,因此我无法写入csv。
我会问如何使c的类型正确。
答案 0 :(得分:2)
我已经尝试过了,并且有效。
df = df.withColumn("c", functions.lit(null.asInstanceOf[String]).cast(StringType))
抱歉,应该强制转换...我已对其进行修改。