Spark

Spark Packages にライブラリを公開する方法

More than 1 year has passed since last update.

Apache Spark にはサードパーティパッケージを公開するサイトとして,Spark Packages があります.このサイトに公開するには,spark-packageコマンドを利用する方法があります.

この記事では,spark-packageコマンドを利用してパッケージを公開する方法を解説します.Spark Packages に公開する流れは,次になります.


  1. Spark Packages 上に公開するパッケージを初期化生成

  2. 公開するパッケージを Spark Packages に登録

  3. 公開するパッケージを zip ファイルにまとめる

  4. Spark Packages に公開


準備

Spark Packages に公開するには,GitHubアカウントが必要です.また spark-packageコマンドでは,GitHubのアクセストークンが必要になります.アクセストークンは,https://github.com/settings/tokensで作成できます.アクセストークの権限には,repo 関連のと read:org をつけておくとよいでしょう.


spark-packageコマンドのインストール

spark-packageコマンドは,pip コマンドでインストールできます.Python3系でもサポートしていますが,Python 2.7.4 あたりで利用するのが無難だと思います.

pip install -U spark-package

クレデンシャルファイルは,次のフォーマットにします.このクレデンシャルファイルは,パッケージを Spark Package 上に

user= $USER_NAME

password= $GITHUB_ACCESS_TOKEN


パッケージの初期化

開発するパッケージを初期化するためには,spark-package initコマンドを利用します.コマンドを実行するとライセンスを選択するように求められます.

spark-package init --scala \

-name="${GITHUB_USER_NAME}/${PACKAGE_NAME}"

Please select a license for your package (enter index):
1. Apache-2.0 url: http://opensource.org/licenses/Apache-2.0
2. BSD 3-Clause url: http://opensource.org/licenses/BSD-3-Clause
3. BSD 2-Clause url: http://opensource.org/licenses/BSD-2-Clause
4. GPL-2.0 url: http://opensource.org/licenses/GPL-2.0
5. GPL-3.0 url: http://opensource.org/licenses/GPL-3.0
6. LGPL-2.1 url: http://opensource.org/licenses/LGPL-2.1
7. LGPL-3.0 url: http://opensource.org/licenses/LGPL-3.0
8. MIT url: http://opensource.org/licenses/MIT
9. MPL-2.0 url: http://opensource.org/licenses/MPL-2.0
10. EPL-1.0 url: http://opensource.org/licenses/EPL-1.0
11. other license (decide later) url: n/a

上の例では Scala のコードのみ対応したプロジェクトを作成します.Spark は Scala, Java, Python, R をサポートしているので,Spark Packages に公開するパッケージもそれぞれの言語,あるいは複数の言語を指定できます.



  • --scala or -s: Scala の構成をプロジェクトに含める


  • --java or -j : Java の構成をプロジェクトに含める


  • --python or -p: Python の構成をプロジェクトに含める


  • --R or -r: R の構成をプロジェクトに含める


Spark Packages 上に登録

Spark Packages 上に公開するには,事前に対象のパッケージを登録する必要があります.また登録する前に,Spark Packages のサイトにログインを1回でもしておく必要があります.

spark-package register --cred=/path/to/$CREDS_FILE \

--name="${GITHUB_USER_NAME}/${PACKAGE_NAME}"


パッケージの zip 生成

Spark Package に公開するには,公開するパッケージを zip ファイルにまとめる必要があります.zip ファイルにまとめるには spark-package zipコマンドを利用しますが,事前に JAR ファイルを生成しておく必要があるので注意してください.

## JAR ファイルの生成

cd ${PACKAGE_NAME}
sbt clean package

## zip ファイルにまとめる
cd $(basename $PROJECT_NAME)
spark-package zip --folder="./${PACKAGE_NAME}" \
--name="${GITHUB_USER_NAME}/${PACKAGE_NAME}" \
--version=1.0
Zip File created at: /home/someone/src/package-name-1.0.zip


パッケージの公開

Spark Packages に公開する方法を解説します.パッケージを公開するには spark-package publishコマンドを利用します.

spark-package publish --cred=/path/to/$CREDS_FILE \

--name="${GITHUB_USER_NAME}/${PACKAGE_NAME}" \
--folder="./${PACKAGE_NAME}" \
--zip=/path/to/package-name-1.0.zip \
--version=1.0


SEE ALSO

https://pypi.python.org/pypi/spark-package/