在Spark数据框中创建StructType的空列

时间:2018-11-06 13:20:36

标签: scala apache-spark

我需要将StructType的空列添加到现有的DataFrame中。

尝试以下操作:

df = df.withColumn("features", typedLit(StructType(Nil)))

并且:

df = df.withColumn("features", lit(new GenericRowWithSchema(Array(), StructType(Nil))))

但是,在上述两种情况下,都将错误消息作为不受支持的文字类型。

1 个答案:

答案 0 :(得分:0)

以一种粗略的方式,可以使用用户定义的函数添加具有空行的列:

def addEmptyRowColumn(df: DataFrame, newColumnName: String): DataFrame = {
  val addEmptyRowUdf = udf( () =>
    new GenericRowWithSchema(Array(), StructType(Nil)), StructType(Nil))

  df.withColumn(newColumnName, addEmptyRowUdf())
}

df = addEmptyRowColumn(df, "features")