parquet文件出现异常:local datetime参数的utc偏移量与offset参数不匹配

xnifntxz  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(274)
import sparkSession.sqlContext.implicits._
val df = Seq(("2014-10-06"), ("2014-10-07"), ("2014-10-08"), ("2014-10-09"), ("2014-10-10")).toDF("DATE")
df.printSchema()

import org.apache.spark.sql.functions.{col, to_date}
val df2 = df.withColumn("DATE", to_date(col("DATE"), "yyyy-MM-dd"))
df2.printSchema()

df2.write.mode(SaveMode.Overwrite).parquet("C:\\TEMP\\")
root
 |-- DATE: string (nullable = true)

root
 |-- DATE: date (nullable = true)

在代码中,我可以将日期列从字符串转换为日期类型,但当输出Parquet文件在打开时出现以下错误时:
parquet.parquetexception:读取列“date”system.argumentexception:local datetime参数的utc偏移量与offset参数不匹配。
有人能帮我吗?

b4wnujal

b4wnujal1#

我无法复制这个-
试着写和读同样的东西

val df1 = Seq(("2014-10-06"), ("2014-10-07"), ("2014-10-08"), ("2014-10-09"), ("2014-10-10")).toDF("DATE")
    df1.printSchema()

    /**
      * root
      * |-- DATE: string (nullable = true)
      */
    import org.apache.spark.sql.functions.{col, to_date}
    val df2 = df1.withColumn("DATE", to_date(col("DATE"), "yyyy-MM-dd"))
    df2.printSchema()

    /**
      * root
      * |-- DATE: date (nullable = true)
      */

    df2.write.mode(SaveMode.Overwrite).parquet("/Users/sokale/models/stack")

    spark.read.parquet("/Users/sokale/models/stack").show(false)

    /**
      * +----------+
      * |DATE      |
      * +----------+
      * |2014-10-08|
      * |2014-10-09|
      * |2014-10-10|
      * |2014-10-06|
      * |2014-10-07|
      * +----------+
      */

相关问题