Python 向架构中再添加一个StructField

Python 向架构中再添加一个StructField,python,apache-spark,pyspark,apache-spark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,My PySpark数据帧具有以下架构: schema = spark_df.printSchema() 根目录 |--字段_1:double(nullable=true) |--字段_2:double(nullable=true) |--字段_3(可空=真) |--字段_4:double(nullable=true) |--字段_5:double(nullable=true) |--字段_6:double(nullable=true) 我想在模式中再添加一个StructField,因此新模

My PySpark数据帧具有以下架构:

schema = spark_df.printSchema()
根目录
|--字段_1:double(nullable=true)
|--字段_2:double(nullable=true)
|--字段_3(可空=真)
|--字段_4:double(nullable=true)
|--字段_5:double(nullable=true)
|--字段_6:double(nullable=true)
我想在模式中再添加一个StructField,因此新模式如下所示:

根目录
|--字段_1:double(nullable=true)
|--字段_1:double(nullable=true)
|--字段_2:double(nullable=true)
|--字段_3(可空=真)
|--字段_4:double(nullable=true)
|--字段_5:double(nullable=true)
|--字段_6:double(nullable=true)
我知道我可以手动创建一个新的_模式,如下所示:

new_schema = StructType([StructField("field_0", StringType(), True),
                            :
                         StructField("field_6", IntegerType(), True)])

这适用于少量字段,但如果有数百个字段,则无法生成。所以我想知道是否有一种更优雅的方法可以将新字段添加到模式的开头?谢谢

您可以复制现有字段和垂直:

to_prepend = [StructField("field_0", StringType(), True)] 

StructType(to_prepend + df.schema.fields)

我得到了以下错误:-->5 StructType(to_prepend+schema.fields)AttributeError:'NoneType'对象没有属性'fields',我的意思是如果schema真的是一个schema。您可以执行
spark_df.printSchema()
,它不会返回有用的值。如果您可能需要在多个字段前加前缀,也可以使用以下命令: