You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中读取/获取Parquet文件?需改写现有CSV读取代码

适配Parquet文件的Svelte Page Load代码改写

1. 安装现代Parquet解析库

推荐使用parquet-wasm——这是基于WebAssembly的轻量库,兼容浏览器/前端环境,解析性能优异,维护活跃,完全适配你的Svelte项目场景。

npm install parquet-wasm

2. 远程Parquet文件加载代码(替换原CSV逻辑)

以下代码完全对应原CSV逻辑的功能:从URL获取Parquet文件、解析为带表头的结构化数据、截取前5条记录。

/** @type {import('./$types').PageLoad} */
import { readParquet } from 'parquet-wasm';

export async function load({ fetch }) {
    // 替换为你的Parquet文件远程URL
    const res = await fetch('https://example.com/flights_part.parquet');
    // Parquet是二进制格式,需读取为ArrayBuffer
    const parquetBuffer = await res.arrayBuffer();
    
    // 解析Parquet,返回格式与Papa.parse(header:true)一致(数组+键值对对象)
    const parsedData = readParquet(new Uint8Array(parquetBuffer));
    // 截取前5条记录,和原逻辑保持一致
    const flights = parsedData.slice(0, 5);

    console.log(flights);
    return { flights };
}

关键说明

  • 放弃text()改用arrayBuffer():Parquet是二进制文件,不能按文本读取。
  • readParquet返回的结构:每个元素是包含表头字段的对象,和你原代码中csv_parsed.data的格式完全匹配,无需额外调整即可用于后续可视化。

3. 本地Parquet文件读取实现(可选)

如果需要支持用户上传本地Parquet文件,可在组件中添加如下逻辑(注意:本地文件读取需在客户端执行,不能放在load函数中):

// 在+page.svelte的<script>标签中
import { readParquet } from 'parquet-wasm';

async function handleFileSelect(event) {
    const file = event.target.files[0];
    if (!file) return;

    const arrayBuffer = await file.arrayBuffer();
    const parsedData = readParquet(new Uint8Array(arrayBuffer));
    const flights = parsedData.slice(0, 5);
    
    console.log(flights);
    // 此处可将数据绑定到组件变量,用于可视化渲染
}

额外注意

  • 若你的Parquet文件包含嵌套结构,parquet-wasm会自动保留层级结构,返回嵌套对象。
  • 库支持常见压缩格式(snappy、gzip等),无需额外配置。

内容的提问来源于stack exchange,提问作者kuatroka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 05:12:53