使用awswrangler读取S3带chunksize的JSON时如何保留多行DataFrame格式?
问题解决:指定chunksize时获取正确格式的DataFrame
问题原因
你的JSON文件是数组包裹的结构化格式,而非JSON Lines(每行一个独立JSON对象)格式。lines=True参数用于解析行分隔型JSON,当它和chunksize一起使用时,awswrangler会错误地将数组内的每个元素解析为DataFrame的列而非行,导致格式异常。
解决方案
移除lines=True参数,直接使用chunksize即可实现分块读取,同时保持正确的多行DataFrame结构。
修正后的调用示例
# 调用时仅传入chunksize参数 chunks = read_json_s3("s3://your-bucket/path/to/your-file.json", client, chunksize=1000) # 遍历处理每个分块 for chunk_df in chunks: print(chunk_df) # 在这里添加你的分块逻辑,比如数据清洗、写入数据库等
验证结果
此时每个分块的DataFrame格式会和你不使用chunksize时完全一致:
data details dtype 0 {'a': 'hello'} {'b': 'hello1'} SP 1 {'a': 'hello2'} {'b': 'hello3'} SP ...
内容的提问来源于stack exchange,提问作者arevur
相关产品推荐
相关产品推荐

