迁移指南: SQL、数据集和DataFram指的是spark.sql.legacy.timeParserPolicy
时间戳/日期字符串的解析/格式化。当用户指定的模式用于解析和格式化时,这会对CSV/JSON数据源和unix_timestamp、date_format、to_unix_timestamp、from_unixtime、to_date、to_timestamp函数产生影响。在Spark3.0中,我们在Datetime模式中定义自己的模式字符串以进行格式化和解析,这是通过幕后的DateTimeFormatter实现的。新实现对其输入执行严格检查。例如,如果模式为yyyy,则2015-07-22 10:00:00 :00时间戳无法解析,因为解析器没有使用整个输入。另一个例子是31/01/2015 00:00输入不能被dd/MM/yyyy :mm模式解析,因为hh假设小时在1-12范围内。在Spark2.4及更低版本中,java.text.SimpleDateFormat用于时间戳/日期字符串转换,支持的模式在SimpleDateFormat中描述。可以通过将spark.sql.legacy.timeParserPolicy设置为旧版本来恢复旧行为。
星星之火应用特性没有解释。它被记录在哪里,可以指定哪些值?
发布于 2022-02-20 12:25:13
由于某些原因,它没有出现在Spark文档中,但是您可以在SQLConf.scala中找到它
当
LEGACY
时,java.text.SimpleDateFormat
用于格式化和解析日期/时间戳,这是Spark3.0之前的方法。当设置为CORRECTED
时,来自java.time.*
包的类用于相同的目的。默认值是EXCEPTION
,当我们得到不同的结果时会抛出RuntimeException。
https://stackoverflow.com/questions/71190476
复制相似问题