记录一次pyspark数据插入到hive表里
net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict (for json.decoder.JSONDecodeError)
大概意思就是,我约定了表的数据类型。但是插入的数据有不符合的该数据类型的数据。
spark-numpy-问题-expected zero arguments for construction of ClassDict (for numpy.dtype) - 知乎
搜了一下解决方案,基本都是说把返回值包成指定类型。但我包了之后问题依然存在。
bug调试:
注释了本次新增逻辑,然后跑纯取纯插的代码,发现没问题。
但是通过url调用ocr结果,一加这个逻辑就err了。
最终定位到 get_ocr_res()方法,少加了一个try-catch,加上try-catch之后就ok了。
!! try-catch是很重要的!请求接口的时候没返回==200的判断,造成有error。
但把方法封装进pyspark里,报错又定位不到。大坑。。。查了3H