【发布时间】:2019-10-03 04:34:17
【问题描述】:
我正在尝试从头开始创建一个 Spark DataFrame 以进行测试。
关键是我想要一个日期列,为此我使用java.sql.Date,如下所示:
val testSchema = List(
StructField("test_string", StringType, true),
StructField("test_date", DateType, true)
)
val testData = Seq(
Row("hello", new java.sql.Date(2019 - 1900, 9, 29)),
Row("world", new java.sql.Date(2019 - 1900, 7, 30))
)
val testDF = spark.createDataFrame(
spark.sparkContext.parallelize(testData),
StructType(testSchema)
)
这可以完成工作,但不推荐使用 java.sql.Date,所以我尝试使用 java.time.LocalDate 和 java.util.Date(直接实例化它并从 java.util.GregorianCalendar 获取它)得到相同的结果:
原因:java.lang.RuntimeException:java.util.Date 不是日期模式的有效外部类型
和
原因:java.lang.RuntimeException:java.time.LocalDate 不是日期模式的有效外部类型
那么与DateType 架构匹配的java.sql.Date 的正确替换是什么?
【问题讨论】:
标签: scala apache-spark