亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 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 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號