首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >火星雨-胶3.0版,更新星火3.0 : 1582-10-15之前的阅读日期或1900年前的时间戳-01-01T00:00:00Z

火星雨-胶3.0版,更新星火3.0 : 1582-10-15之前的阅读日期或1900年前的时间戳-01-01T00:00:00Z
EN

Stack Overflow用户
提问于 2022-05-12 07:49:40
回答 1查看 695关注 0票数 0

升级到Glue 3.0后,在处理rdd对象时出现了以下错误

调用o926.javaToPython时出错。由于Spark3.0的升级,您可能会得到不同的结果:从Parquet文件读取1582-10-15之前的日期或1900-01-01T00:00:00Z之前的时间戳可能是模棱两可的,因为这些文件可能是由Spark2.x或传统版本的Hive编写的,后者使用的遗留混合日历与Spark3.0+的支持性公历不同。请参阅更多信息,参见火花-31404。您可以将spark.sql.legacy.parquet.datetimeRebaseModeInRead设置为“旧式”,以重新建立日期时间值w.r.t。阅读期间的日历差异。或者将spark.sql.legacy.parquet.datetimeRebaseModeInRead设置为“更正”以读取日期时间值。

我已经添加了文档中提到的配置

--conf spark.sql.legacy.parquet.int96RebaseModeInRead=CORRECTED --conf spark.sql.legacy.parquet.int96RebaseModeInWrite=CORRECTED --conf spark.sql.legacy.parquet.datetimeRebaseModeInRead=CORRECTED

这确实是一个阻止运行Glue作业的阻塞问题!

注意:在本地,我使用的是pyspark3.1.2,对于相同的数据,它没有问题。

EN

回答 1

Stack Overflow用户

发布于 2022-06-15 14:37:44

我就这样解决了。默认设置如下:

代码语言:javascript
运行
复制
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)

添加额外的火花配置

代码语言:javascript
运行
复制
conf = sc.getConf()
conf.set("spark.sql.legacy.parquet.int96RebaseModeInRead", "CORRECTED")
conf.set("spark.sql.legacy.parquet.int96RebaseModeInWrite", "CORRECTED")
conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInRead", "CORRECTED")
conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInWrite", "CORRECTED")
sc.stop()
sc = SparkContext.getOrCreate(conf=conf)
glueContext = GlueContext(sc)

..。你的代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72211859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档