ホームページ >バックエンド開発 >Python チュートリアル >AWS でファイルを変換するには、Polar と Pandas のどちらが速くて安価ですか?
どちらも幅広いツールと利点を提供するため、ある時点で 2 つのうちのどちらを選択するか迷ってしまうこともあります。それは、会社のすべてのプロセスを変更して、Polars を使い始めたり、Pandas を「廃止」したりすることではありません (これはすぐには起こらないでしょう)。それは、プロセスのコストと時間を削減し、同等以上の結果を得るのに役立つ他のツールを知ることです。
クラウド サービスを使用する場合、コストなどの特定の要素を優先します。このプロセスに使用するサービスは、Python 3.10 ランタイムを備えた AWS Lambda と、生のファイルと寄木細工の変換されたファイルを保存するための S3 です。
その目的は、CSV ファイルを生データとして取得し、それを pandas と Polars で処理して、これら 2 つのライブラリのどちらがメモリや結果として得られるファイルの重みなどのリソースをより適切に最適化できるかを検証することです。
パンダ
これはデータ操作と分析に特化した Python ライブラリであり、C で書かれており、最初のリリースは 2008 年でした。
*極地 *
これは、並列処理を可能にするデータ操作と分析に特化した Python および Rust ライブラリであり、主に Rust で書かれており、2022 年にリリースされました。
プロセスのアーキテクチャ:
プロジェクトは、アーキテクチャに示されているように単純なものです。ユーザーは CSV ファイルを work/pandas または work/porlas にデポジットし、s3 トリガーを自動的に開始してファイルを処理し、それを寄木細工に変換して処理済みにデポジットします。
この小さなプロジェクトでは、次の構成で 2 つのラムダを使用しました:
メモリ: 2GB
エフェメラルメモリ: 2 GB
存続時間: 600 秒
要件
ラムダとパンダ: パンダ、Numpy、Pyarrow
極性を持つラムダ: Polars
比較に使用したデータセットは、kaggle で「Rotten Tomatoes Movie Reviews – 144M rows」という名前で入手できるか、ここからダウンロードできます。
完全なリポジトリは GitHub で入手でき、ここで複製できます。
サイズまたは重量
Pandas が使用するラムダには、寄木細工ファイルを作成するためにさらに 2 つのプラグインが必要です。この場合、それは PyArrow と、私が使用していた Pandas のバージョンの特定のバージョンの numpy です。その結果、74.4 MB の重みまたはサイズのラムダを取得しました。これは、AWS がラムダの重さに関して許可する制限に非常に近い値です。
Polars を使用したラムダは、PyArrow のような別のプラグインを必要とせず、作業を簡素化し、ラムダのサイズを半分以下に縮小します。その結果、ラムダの重みまたはサイズは最初のものと比較して 30.6 MB になり、変換プロセスに必要な他の依存関係をインストールする余地が生まれました。
パフォーマンス
Pandas を使用したラムダは、最初のバージョン以降、圧縮を使用するように最適化されましたが、その動作も分析されました。
パンダ
他のバージョンと比較して、データセットの処理に 18 秒かかり、CSV ファイルの処理と Parquet ファイルの生成に 1894 MB のメモリを使用しました。これは、最も多くの時間とリソースを使用したバージョンでした。
パンダ + 圧縮
コード行を追加することで、以前のバージョン (Pandas) と比較して少し改善できました。データセットの処理に 17 秒かかり、1,837 MB を使用しました。これは、処理時間と計算時間の大幅な改善ではなく、サイズの改善を示しています。結果のファイルの
極
同じデータセットの処理に 12 秒かかり、使用したのは 1462 MB だけでした。前の 2 つと比較して、時間は 44.44% 節約され、メモリ消費量も少なくなりました。
出力ファイルサイズ
パンダ
圧縮プロセスが確立されていないラムダは、177.4 MB の寄木細工のファイルを生成しました。
パンダ + 圧縮
ラムダで圧縮を構成する場合、121.1 MB の寄木細工のファイルは生成されません。 1 つの小さな行またはオプションにより、ファイル サイズが 31.74% 削減されました。大幅なコード変更ではないことを考慮すると、これは非常に良いオプションです。
極
Polars は、Pandas の最初のバージョンと一緒に購入した 105.8 MB ファイルを生成しました。これは、圧縮された Pandas バージョンと比較して 40.36% および 12.63% の節約に相当します。
結論
Pandas を使用するすべての内部プロセスを、Polars を使用するように変更する必要はありませんが、数千または数百万のラムダ実行について話している場合、Polars の使用はデプロイメントだけでなく役立つことを考慮することが重要です。しかし、AWS が Lambda などのサーバーレス サービスに対して時間ベースの課金を行うため、コストの削減にも役立ちます。
同様に、その 40.36% を数百万のファイルに換算すると、GB または TB の話になり、Datalake または Dataware ハウス内、さらにはコールド ファイル ストレージ内でさえ重大な影響を与える可能性があります。
Polars による削減は、これら 2 つの要素に限定されるものではありません。AWS はコストがかかるサービスであるため、AWS からのデータやオブジェクトの出力に大きな影響を与えるからです。
以上がAWS でファイルを変換するには、Polar と Pandas のどちらが速くて安価ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。