本文介绍: 在Spark 3.0之前的版本中,日期时间解析使用java.text.SimpleDateFormat,它在解析某些日期时间格式可能较为宽松。例如,它可能允许日期字符串中的月份部分超过12,或日期部分超过31,并尝试自动调整。如果你的代码中有日期和时间解析,并且你升级到了Spark 3.0或更高版本,那么你可能需要关注这个配置选项,以确保代码的兼容性和期望行为。如果你的日期和时间字符串格式严格并始终遵循ISO标准,或者你希望采用更严格的解析策略,那么你应该使用默认的。在Apache Spark中,

在Apache Spark中,spark.sql.legacy.timeParserPolicy一个配置选项,它控制时间和日期解析策略。此选项主要影响如何解析日期和时间字符串

在Spark 3.0之前的版本中,日期和时间解析使用java.text.SimpleDateFormat,它在解析某些日期和时间格式可能较为宽松。例如,它可能允许日期字符串中的月份部分超过12,或日期部分超过31,并尝试自动调整。这种宽松的解析方式在某些情况下可能会导致意外的结果

从Spark 3.0开始,默认的解析策略变得更加严格,使用java.time.format.DateTimeFormatter来解析日期和时间格式。这种新的解析器严格遵守ISO标准,并且不会进行前面提到的自动调整。

spark.sql.legacy.timeParserPolicy 配置可以设置为以下值:

例如,如果你想在Spark 3.0或更高版本中保持与以前版本相同的宽松解析行为可以设置

spark.conf.set("spark.sql.legacy.timeParserPolicy", "LEGACY")

或者在启动Spark通过传递配置参数设置

./bin/spark-submit --conf "spark.sql.legacy.timeParserPolicy=LEGACY" ...

如果你的代码中有日期和时间解析,并且你升级到了Spark 3.0或更高版本,那么你可能需要关注这个配置选项,以确保代码的兼容性和期望行为。如果你的日期和时间字符串格式严格并始终遵循ISO标准,或者你希望采用更严格的解析策略,那么你应该使用默认CORRECTED策略。

原文地址:https://blog.csdn.net/u010003835/article/details/134687997

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_31984.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注