使用awswrangler 3.7.2读取S3 Parquet文件触发ArrowNotImplementedError
解决awswrangler 3.7.2读取S3 Parquet文件时的ArrowNotImplementedError错误
使用awswrangler 3.7.2读取S3上的Parquet文件(该文件由awswrangler的to_parquet写入)时,触发了ArrowNotImplementedError: Nested data conversions not implemented for chunked array outputs错误,以下是几种可行的解决办法:
关闭多线程读取
多线程模式下处理嵌套数据容易触发Arrow的未实现逻辑,把use_threads设为False即可:import awswrangler as wr df = wr.s3.read_parquet('s3_uri/file.parquet', use_threads=False)升级awswrangler版本
这个错误大概率是版本兼容性问题,升级到最新稳定版(建议3.8.0及以上),官方可能已经修复了嵌套数据与多线程读取的冲突。执行升级命令:pip install --upgrade awswrangler针对性处理嵌套数据
如果文件包含复杂嵌套结构(比如数组套结构体、多层嵌套),可以尝试读取时指定非嵌套列,或者在写入时先扁平化嵌套数据:# 读取指定非嵌套列 df = wr.s3.read_parquet('s3_uri/file.parquet', columns=['user_id', 'order_time'], use_threads=True)
内容的提问来源于stack exchange,提问作者Justin Boylan-Toomey
相关产品推荐
相关产品推荐

