У меня есть простой код, который использует 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, то я не могу записать в csv, так как нулевой тип данных не поддерживается.
Я бы спросил, как сделать тип c правильным.