このページの内容

Awesome Spark

Sparkを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

パッケージ

言語バインディング

ノートブックとIDE

  • almond - Jupyter向けのScalaカーネルです。
  • Apache Zeppelin - プラグイン可能なバックエンド、統合プロット、標準での広範なSparkサポートにより、対話的データ分析を可能にするWebベースノートブックです。
  • Polynote - IDEに着想を得たポリグロットノートブックです。一つのノートブック内で複数言語を混在させ、言語間でシームレスにデータを共有できます。不変のデータモデルにより再現可能なノートブックを促進します。Netflix発です。
  • sparkmagic - Jupyterノートブックで、Livy経由でリモートSparkクラスターを対話的に扱うためのmagicsとカーネルです。

汎用ライブラリ

  • itachi - 現代的なデータベース管理システムの有用な関数をApache Sparkへもたらすライブラリです。
  • spark-daria - 生産性を高めるための必須Spark関数と拡張を備えたScalaライブラリです。
  • quinn - spark-dariaのネイティブPySpark実装です。
  • Apache DataFu - 汎用関数とUDF群のライブラリです。
  • Joblib Apache Spark Backend - Sparkクラスター上でタスクを実行するjoblibバックエンドです。

SQLデータソース

SparkSQLにはファイル向けの複数の組み込みData Sourcesがあります。csvjsonparquetorcavroが含まれます。JDBCデータベースとApache Hiveもサポートします。以下のパッケージを含めるか独自実装を書くことで、追加データソースを利用できます。

ストレージ

  • Delta Lake - ACIDトランザクションを備えるストレージ層です。
  • Apache Hudi - ビッグデータ上のアップサート、削除、増分処理です。
  • Apache Iceberg - ビッグデータ上のアップサート、削除、増分処理です。
  • lakeFS - lakeFSのアトミックなバージョン付きストレージ層との統合です。

バイオインフォマティクス

  • ADAM - ゲノミクスデータの分析向けに設計されたツール群です。
  • Hail - 遺伝解析フレームワークです。

GIS

  • Apache Sedona - 大規模な空間データを処理するクラスターコンピューティングシステムです。

グラフ処理

  • GraphFrames - データフレームベースのグラフAPIです。
  • neo4j-spark-connector - RDD、DataFrame、GraphX / GraphFramesをサポートする、BoltプロトコルベースのNeo4jコネクターです。

機械学習拡張

  • Apache SystemML - Spark上の宣言的機械学習フレームワークです。
  • Mahout Spark Bindings [status unknown] - R風構文を持つ線形代数DSLとオプティマイザーです。
  • KeystoneML - RDDによる型安全な機械学習パイプラインです。
  • JPMML-Spark - Spark ML向けのPMML変換ライブラリです。
  • ModelDB - spark.mlおよびscikit-learn の機械学習モデルを管理するシステムです。
  • Sparkling Water - H2Oとの相互運用レイヤーです。
  • BigDL - 分散ディープラーニングライブラリです。
  • MLeap - o.a.s.mlモデルをSparkSessionに依存せずにデプロイできる実行エンジンおよびシリアライズ形式です。
  • Microsoft ML for Apache Spark - LightGBM、Vowpal Wabbit、OpenCV、ディープラーニング、Cognitive Services、モデルデプロイメントをサポートする分散MLライブラリです。
  • MLflow - 機械学習オーケストレーションプラットフォームです。

ミドルウェア

  • Livy - 幅広い言語(Python、R、Scala)をサポートし、対話セッションの維持とオブジェクト共有を可能にするRESTサーバーです。
  • spark-jobserver - いわゆる名前付きオブジェクトを用いたオブジェクト共有をサポートするシンプルなSpark as a Serviceです。JVM専用です。
  • Apache Toree - 対話型アプリケーション向けのIPythonプロトコルベースのミドルウェアです。
  • Apache Kyuubi - Apache Spark上に構築された、大規模データ処理および分析用の分散マルチテナントJDBCサーバーです。

監視

  • Data Mechanics Delight - クロスプラットフォームの監視ツール(Spark UI / Spark History Serverの代替)です。

ユーティリティ

  • sparkly - PySpark向けのヘルパーとシンタックスシュガーです。
  • Flintrock - EC2上でSparkクラスターを起動するためのコマンドラインツールです。
  • Optimus - データクレンジングを簡略化することを目的とした、データクレンジングおよび探索ユーティリティです。

自然言語処理

  • spark-nlp - Apache Spark ML上に構築された自然言語処理ライブラリです。

ストリーミング

  • Apache Bahir - Spark 2.0から除外されたストリーミングコネクター(Akka、MQTT、Twitter、ZeroMQ)のコレクションです。

インターフェース

  • Apache Beam - バッチおよびストリーミングアプリケーションの両方をサポートする統合データ処理エンジンです。Apache Sparkはサポート対象の実行環境の一つです。
  • Koalas - Apache Spark上のPandas DataFrame APIです。

データ品質

  • deequ - 大規模データセットのデータ品質を測定する「データのユニットテスト」を定義するための、Apache Spark上に構築されたライブラリです。
  • python-deequ - Deequ向けのPython APIです。

テスト

  • spark-testing-base - 基本テストクラスのコレクションです。
  • spark-fast-tests - 軽量で高速なテストフレームワークです。
  • chispa - 見やすいエラーメッセージを備えたPySparkテストヘルパーです。

ウェブアーカイブ

ワークフロー管理

リソース

書籍

論文

MOOC

ワークショップ

Sparkを使用するプロジェクト

  • Oryx 2 - Lambda architectureプラットフォームであり、Apache SparkおよびApache Kafka上に構築され、リアルタイム大規模機械学習に特化しています。
  • Photon ML - 従来の一般化混合モデルおよび一般化加法混合効果モデルをサポートする機械学習ライブラリです。
  • PredictionIO - 開発者とデータサイエンティストが予測アプリケーションを短時間で構築・デプロイするための機械学習サーバーです。
  • Crossdata - 拡張DataSource APIとマルチユーザー環境を備えたデータ統合プラットフォームです。

Dockerイメージ

その他

参考文献

Wikipedia. 2017. 「Apache Spark — Wikipedia, the Free Encyclopedia」。 https://en.wikipedia.org/w/index.php?title=Apache_Spark&oldid=781182753

ライセンス

Public Domain Mark
この作品(https://github.com/awesome-spark/awesome-sparkによるAwesome Spark)は、Maciej Szymkiewiczにより識別されており、既知の著作権上の制限はありません。

Apache Spark、Spark、Apache、およびSparkロゴは、商標であり、The Apache Software Foundationに帰属します。この編集物はThe Apache Software Foundationの承認を受けたものではありません。

sindresorhus/awesomeに着想を得ています。