Pyspark WithColumnRename更改列的空类型 df=df.withColumnRename('mail','EmailAddress')

Pyspark WithColumnRename更改列的空类型 df=df.withColumnRename('mail','EmailAddress'),pyspark,apache-spark-sql,pyspark-sql,Pyspark,Apache Spark Sql,Pyspark Sql,更改作为架构一部分声明的nulltype(声明为false)。有没有办法不让这种事情发生 pyspark文档中没有提到任何内容 schema=StructType([StructField(“mail”,StringType(),False)]) df=spark.read.json(inputPath,schema=schema) df=df.WithColumnRename('mail','EmailAddress') df.printSchema() 这将产生: |--EmailAddr

更改作为架构一部分声明的nulltype(声明为false)。有没有办法不让这种事情发生

pyspark文档中没有提到任何内容

schema=StructType([StructField(“mail”,StringType(),False)])
df=spark.read.json(inputPath,schema=schema)
df=df.WithColumnRename('mail','EmailAddress')
df.printSchema()
这将产生:

|--EmailAddress:string(nullable=true)

无法复制。什么版本的spark?能否在重命名列之前添加
df.printSchema()
的输出?可能由于
read.json
而导致空值?即使不重命名列,原始的可空值也将显示为
true
。请检查。@pault我使用的是spark 2.4版,是的,您是对的,之前的模式也将nullable显示为true。这是否意味着模式没有正确反映,或者从未设置null属性?json数据中是否有
null
s?没有。没有空值。无法复制。什么版本的spark?能否在重命名列之前添加
df.printSchema()
的输出?可能由于
read.json
而导致空值?即使不重命名列,原始的可空值也将显示为
true
。请检查。@pault我使用的是spark 2.4版,是的,您是对的,之前的模式也将nullable显示为true。这是否意味着模式没有正确反映,或者从未设置null属性?json数据中是否有
null
s?没有。没有空值。