为了账号安全,请及时绑定邮箱和手机立即绑定

在 GoLang 或 Javascript 中读取 Arrow Feather 文件

在 GoLang 或 Javascript 中读取 Arrow Feather 文件

Go
子衿沉夜 2022-08-24 19:05:02
我正在寻找一种方法来通过GoLang或Javascript或其他一些不需要用户进行其他额外安装的语言来读取羽毛文件。我的目标是提供一个用户界面来读取羽毛csv文件并将其转换回人类可读的csv。但是,我找不到太多关于如何解决它的资源。目前我有一个下面生成的测试羽毛文件。import pandas as pdimport datetimeimport numpy as npimport pyarrow.feather as feather# Create a dummy dataframetodays_date = datetime.datetime.now().date()index = pd.date_range(todays_date-datetime.timedelta(10), periods=10, freq='D')columns = ['A','B', 'C']df = pd.DataFrame(index=index, columns=columns)df = df.fillna(0) # with 0s rather than NaNsfeather.write_feather(df, 'test_feather.csv')提前致谢。
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

Javascript包附带了一个脚本,正是这样做的。您可以在此处找到脚本的源代码:https://github.com/apache/arrow/blob/master/js/bin/arrow2csv.jsapache-arrow

如果它没有完全按照您的要求执行操作,则该脚本应作为如何使用 API 读取羽化文件的示例。


查看完整回答
反对 回复 2022-08-24
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

事实证明,我发现我可以简单地使用该函数将.feather文件转换为csv。对于那些遇到相同问题的人,您可能会找到下面的代码以供参考。arrow.Table.from([arrow])


const apArrow = require('apache-arrow');

const fs = require('fs');


const outputDir = 'output/feather';


const writeIntoFile = (data) => {

  fs.appendFileSync(`${outputDir}/test_feather.csv`, data, function (err) {

    if (err) return console.log(err);

  });

};


const readDataFromRow = (fields, row) => {

  return fields

    .map((f) => row.get(f))

    .join(',');

};


const arrowReader = (filePath) => {

  console.log('filePath', filePath);

  const arrow = fs.readFileSync(filePath);

  const table = apArrow.Table.from([arrow]);


  const columns = table.schema.fields.map((f) => f.name);


  let buf = columns.join(',') + '\n';


  for (let i = 0; i < table.count(); i++) {

    const rowData = readDataFromRow(columns, table.get(i));

    buf += `${rowData}\n`;

    // export to csv every 10000 rows

    if (i % 10000 === 0) {

      writeIntoFile(buf);

      buf = '';

      if (i > 0) {

        break;

      }

    }

  }


  writeIntoFile(buf);

};


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信