spark开发中遇到的一些BUG
最近由于公司升级了spark3,也因此遇到了一些BUG
-
sparkSQL在运行作业时候,使用saveASTable时候作业如果突然挂掉或者被kill掉,此时表的HDFS路径已经创建,但是表在MySQL的元数据确没有就会导致,再次saveASTable时候会报错显示HDFS上此路径已经存在。
-
解决方案1:手动在服务器删除路径,通常线上环境不允许。所以更推荐第二种方法。
-
解决方案2:设置允许在非空位置创建托管表,然后使用saveASTable创建表就可以了,切记一定要使用spark2去执行,因为spark3官方已经删除了这种操作,官方给出的解释是这样的操作不安全。
set spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation=true
-
-
spark3中的map函数有时候会导致里面的元素乱序,这个目前还没去深入研究。如果有大佬知道,麻烦评论区告知一下,谢谢。
-
spark3执行写入的表可能会跟presto查询出来的结果不一致。