3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Bunとnodejs-polarsでデータ分析(前半)

Last updated at Posted at 2023-02-20

1. はじめに

Bunとnodejs-polarsでデータ加工+αが高速でできる!

2.nodejs-polarsについて

  • polarsのサイトを見てると、nodejsでも実行できるんだーエッ!となり、データ加工のみならpythonいらなくなるじゃんと思ったのをきっかけに情報収集を開始。
  • この方↓のtweetを見かけて、さらにBunという存在を知る。確かに突然javascriptですごいスピードのデータ加工ができるようになる可能性。mapやreduceでも何かできるのではと思ってたけど、慣れてる方法でできる(しかも速い)ならありがたい。

image.png

3.Bunについて

Bunというのは初めて知ったけど、node.jsやdenoよりも速いというのを売りにして最近出たものの様子。
image.png

4. やってみた。

github codespaceで。もうローカルにエディタもいらないな。。

4.1 bunを入れる。

公式サイトの案内どおり(変なキャラだなあ)

curl -fsSL https://bun.sh/install | bash
bun http.js

image.png

image.png
よし。

4.2 noejs-polarsを入れる

bun add nodejs-polars
bun add bun-types //autocomplete用

image.png

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);
  },
};

image.png

image.png

確かに動く!

cytoscapde.jsと組わせれば、ネットワーク分析+可視化もサーバサイドのjavsscriptでまかなえるのでは?と試作中。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?