pyspark.sql.utils.AnalysisException:Parquet 数据源不支持 void 数据类型

ar_*_*m18 10 types void apache-spark parquet pyspark

我正在尝试在 PySpark 的数据框中添加一列df1

我尝试过的代码:

import pyspark.sql.functions as F
df1 = df1.withColumn("empty_column", F.lit(None))
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

pyspark.sql.utils.AnalysisException:Parquet 数据源不支持 void 数据类型。

谁能帮我这个?

Zyg*_*ygD 13

而不仅仅是F.lit(None),请将其与 acast和适当的数据类型一起使用。例如:

F.lit(None).cast('string')
Run Code Online (Sandbox Code Playgroud)
F.lit(None).cast('double')
Run Code Online (Sandbox Code Playgroud)

当我们添加文字空列时,它的数据类型为void

from pyspark.sql import functions as F
spark.range(1).withColumn("empty_column", F.lit(None)).printSchema()
# root
#  |-- id: long (nullable = false)
#  |-- empty_column: void (nullable = true)
Run Code Online (Sandbox Code Playgroud)

但是,当保存为 parquet 文件时,不支持voidcast数据类型,因此此类列必须是其他数据类型。