2 回答
TA贡献1856条经验 获得超17个赞
Javascript包附带了一个脚本,正是这样做的。您可以在此处找到脚本的源代码:https://github.com/apache/arrow/blob/master/js/bin/arrow2csv.jsapache-arrow
如果它没有完全按照您的要求执行操作,则该脚本应作为如何使用 API 读取羽化文件的示例。
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);
};
- 2 回答
- 0 关注
- 144 浏览
添加回答
举报