Scala Spark读取分区列显示为空

Scala Spark读取分区列显示为空,scala,apache-spark,Scala,Apache Spark,我在尝试使用Spark读取分区数据时遇到问题 如果分区列中的数据采用特定格式,则它将在生成的数据帧中显示为null 例如: case class Alpha(a: String, b:Int) val ds1 = Seq(Alpha("2020-02-11_12h32m12s", 1), Alpha("2020-05-21_10h32m52s", 2), Alpha("2020-06-21_09h32m38s", 3)).toDS ds

我在尝试使用Spark读取分区数据时遇到问题

如果分区列中的数据采用特定格式,则它将在生成的数据帧中显示为null

例如:

case class Alpha(a: String, b:Int)
val ds1 = Seq(Alpha("2020-02-11_12h32m12s", 1), Alpha("2020-05-21_10h32m52s", 2), Alpha("2020-06-21_09h32m38s", 3)).toDS
ds1.show
    +--------------------+---+
    |                   a|  b|
    +--------------------+---+
    |2020-02-11_12h32m12s|  1|
    |2020-05-21_10h32m52s|  2|
    |2020-06-21_09h32m38s|  3|
    +--------------------+---+
ds1.write.partitionBy("a").parquet("test")
val ds2 = spark.read.parquet("test")
ds2.show
    +---+----+
    |  b|   a|
    +---+----+
    |  2|null|
    |  3|null|
    |  1|null|
    +---+----+
你知道我怎样才能让数据以字符串(或时间戳)的形式显示吗


谢谢您的帮助。

只需将参数
spark.sql.sources.partitionColumnTypeInference.enabled
设置为
false

spark.conf.set("spark.sql.sources.partitionColumnTypeInference.enabled", "false")

只需将参数
spark.sql.sources.partitionColumnTypeEnference.enabled
设置为
false

spark.conf.set("spark.sql.sources.partitionColumnTypeInference.enabled", "false")