Spark - 如何在scala中的StructType的开头添加StructField

时间:2016-05-14 22:27:52

标签: scala apache-spark

我有一个StructType类型的架构:

val schema = getSchema();  // getSchema returns StructType

我创建了另一个StructField类型的字段:

StructField("NAME", StringType, false)

我知道我可以调用schema.add()方法将NAME字段添加到现有模式的末尾,但是如何将NAME添加到模式的开头以使其成为第一列?感谢。

2 个答案:

答案 0 :(得分:4)

您可以创建辅助StructType,然后将现有辅助添加到其中:

val auxSchema=StructType(Array(StructField("NAME", StringType, false)))
StructType(auxSchema++schema)

答案 1 :(得分:0)

这会奏效。

 val schema = StructType(
      StructField("string_column", StringType, true) ::
        StructField("int_column", IntegerType, true) ::
        StructField("float_column", FloatType, true) ::
        StructField("_corrupt_record", StringType, true) :: Nil
    )

 val newschema = schema.add(StructField("new_column", StringType, true))
 println(newschema)