如何读取含JSON数据列的CSV文件?PSDuckDB优化方案咨询
直接用PSDuckDB读取CSV中的JSON列
完全不需要先把CSV里的JSON列导出成单独的JSON文件,DuckDB本身支持直接解析CSV字段中的JSON数据,用PSDuckDB可以一步完成查询。
示例代码
# 直接查询CSV,解析AuditData列的JSON内容 Invoke-DuckDBQuery -Query @" SELECT json_extract(AuditData, '$.Operation') AS Operation, json_extract(AuditData, '$.UserId') AS UserId, -- 根据需求提取更多JSON字段 * FROM read_csv('C:\M365-UnifiedAuditLog.csv', auto_detect=true) "@
关键说明
read_csv函数可直接加载CSV文件,auto_detect=true会自动识别列类型;即便AuditData列被识别为字符串,也能直接用JSON函数解析。- 若要提取单个JSON字段,用
json_extract指定字段路径即可;要是需要把整个AuditData列转为完整JSON对象,使用json(AuditData),示例:SELECT json(AuditData) AS FullAuditData FROM read_csv('C:\M365-UnifiedAuditLog.csv') - 这种方式跳过了中间导出JSON文件的步骤,完全利用DuckDB的高效解析能力,速度比先导出再查询更快。
内容的提问来源于stack exchange,提问作者user3022917
相关产品推荐
相关产品推荐

