Spark

AWSのGlueというサービスでPythonのSparkを使うことがあったのでSparkについて記載したいと思います。
(GlueはAWSの分析・集計などをしてくれるサービスです。)
以前から記載していた「pandas」「NumPy」に近いものがあります。

どんなことができるかと言うと
データに対してSQLが使用可能となっており、機械学習やグラフ理論が可能となっています。

今回設定したフローで紹介したいと思います。
(AWSのサービスを利用しているので環境は整った前提で記載します)

#特定のCSVファイルを読み込む
df = spark.read.csv([CSVパス], header=True, sep=’,’, inferSchema=True)

#テンポラリテーブル作成
df.createTempView(‘sample_table’)

#クエリ実行(条件も設定可能)
df2 = spark.sql(‘select id, sum(num) from sample_table group by id’)
#データフレームで記載すると
df2 = df.groupBy(‘id’).agg({‘num’: ‘sum’})

上記のようか感じでsqlが使用可能になります。
CSVファイルをテーブルとして扱え、そのテンポラリテーブルに対してSQLで実行できるといった感じです。

読み込むファイルによってはエラーがでるかも。
また、バージョンによって記載方法が異なるかもです。
(まだ、詳細な部分に関しては未調査)

これはSQLを理解している人にとっては便利ではないかと感じましたが…
問題は速度ですね。
実際に実装した環境がAWSのGlueでこのサービスはバッチ的なルールで裏で動くものです。
フロント側でこのsparkを利用していないのでわからないですが
Pythonの集計処理ツールを比較しているサイトをみた感じではsparkが一番早そうな記載をしていました。

以上、Sparkについてでした。

“Spark” への 0 件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です