1. はじめに
Bunとnodejs-polarsでデータ加工+αが高速でできる!
2.nodejs-polarsについて
- polarsのサイトを見てると、nodejsでも実行できるんだーエッ!となり、データ加工のみならpythonいらなくなるじゃんと思ったのをきっかけに情報収集を開始。
- この方↓のtweetを見かけて、さらにBunという存在を知る。確かに突然javascriptですごいスピードのデータ加工ができるようになる可能性。mapやreduceでも何かできるのではと思ってたけど、慣れてる方法でできる(しかも速い)ならありがたい。
3.Bunについて
Bunというのは初めて知ったけど、node.jsやdenoよりも速いというのを売りにして最近出たものの様子。
4. やってみた。
github codespaceで。もうローカルにエディタもいらないな。。
4.1 bunを入れる。
公式サイトの案内どおり(変なキャラだなあ)
curl -fsSL https://bun.sh/install | bash
bun http.js
4.2 noejs-polarsを入れる
- nodejs-polarsを入れる。
bun add nodejs-polars
bun add bun-types //autocomplete用
nodejs-polarsの公式に乗っていたものを借りる。
// http.js
//import Database from "bun:sqlite"; //本当は使いたかったが適当なsqliteデータがないので断ね
//import pl from "nodejs-polars";
const pl = require("nodejs-polars");
const fooSeries = pl.Series("foo", [1, 2, 3]);
console.log(fooSeries);
const dispval = JSON.stringify(fooSeries.toArray());
const df = pl.DataFrame({
A: [1, 2, 3, 4, 5],
fruits: ["banana", "banana", "apple", "apple", "banana"],
B: [5, 4, 3, 2, 1],
cars: ["beetle", "audi", "beetle", "beetle", "beetle"],
});
console.log(df);
export default {
port: 3000,
fetch(request) {
return new Response(dispval);
},
};
確かに動く!
cytoscapde.jsと組わせれば、ネットワーク分析+可視化もサーバサイドのjavsscriptでまかなえるのでは?と試作中。