升级到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
,对于相同的数据,它没有问题。
发布于 2022-06-15 14:37:44
我就这样解决了。默认设置如下:
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
添加额外的火花配置
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)
..。你的代码
https://stackoverflow.com/questions/72211859
复制相似问题