😎

PythonによるDatabricks(Spark)利用に関するナレッジ共有の方針

2021/01/30に公開

はじめに

Databricksをベースに、Sparkの利用方法に関するナレッジ共有する方針を記載します。本記事は随時更新を行います。

下記記事に記載した"ソフトウェアにおける開発手法"のナレッジ共有の一環です。
データ分析におけるナレッジ体系化の計画書 (zenn.dev)

実施内容

下記が対象。
1.PySpark(mllibを除く)
2.Spark SQL

下記については、次のステップでの対象とする。

3.Koala
4.Sparkを用いたMLOps(AutoMLを含む)

下記は対象外とする

5.Pythonのライブラリー(Pandas、Scikit-learn等)
6.PySpark(mllib)

検証環境

Databricks Community Edtion、あるいは、商用Databricksにて実施する。
Databricks Community Edtionの仕様により3人までしか同一ワークスペースで作業できないため、環境構築が容易であるAzure Databricksを利用することとする。

Databricks Community Edtionについては下記より申し込みが可能です。

引用元:Try Databricks

申し込み方法については、下記に記載しております。
無償のSpark実行環境であるDatabricks Community Editionの申し込み方法 - Qiita

事前の学習方法

Databricksの学習コンテンツとして下記が無償で提供されております。

コンテンツは英語であるため、英語が苦手な方は躊躇することなくブラウザの翻訳機能を利用してください

日本語の学習コンテンツとしては、下記が参考になります。
ノートブックが提供されているため、自分で実践できます。

Databricksハンズオンで学ぶ実践Data & AI – Book of Architectures (jixjia.com)

参加要検討と参加メリット

参加要件

  • 成果物に対する著作権の放棄。その後、Github等でOSSとして公開する想定。
  • 1記事20分ぐらいの作業を実施していただくこと。
  • Databricks環境へのログインするメールアドレスの提供

参加メリット

  • PySparkに対する網羅的な知識の獲得
    • 作成したソースコード等については提供。個人利用・商用利用は可、パブリックへの再配布は不可。
  • PySparkに関する疑問の解消
  • PySparkの利用シーンを含めたデータ分析基盤に関する疑問の解消

主催者がデータ分析基盤に関するアーキテクトであるため、システムとしての開発・運用に関する相談への対応が可能です。

必要なソフトウェア

  • ブラウザ
    • Microsoft Edge、もしくは、Google Chrome
    • タイトル付きのリンクをコピーする機能 ※
  • タイトル付きのリンクを一時的に貼り付け先のサービス
    • Typora、Word、

URLと記事のタイトルをコピーする機能

URLをコピペするだけで、記事のタイトルとURLによるタイトル付きリンクを作成してくれる機能であり、PySparkドキュメント等の参考リンクを貼り付ける際に利用します。Micosoft Edgeでは標準機能ですが、Chromeの場合にはアドオンが必要なようです。

下記のようにブラウザにてURLをコピーすると、

記事のタイトルとURLのタイトル付きリンクをコピペできます。

Micosoft Edgeの場合

標準機能でオンとなっていますが、うまくいかない場合には下記の記事に参考に設定を変更してください。
【Microsoft Edge便利機能】URLバーをコピーするとタイトルを含めたMarkdown形式で貼り付け可能 - Qiita

Chromeの場合

下記の記事を参考にアドオンを追加してください。
Chrome拡張機能の「Create Link」を使って簡単にサイトリンクを生成する – Webrandum

Typoraについて

Typoraとは、便利なMarkdownエディターです。
下記の記事を参考にダウンロードしてください。
Typora(タイポラ)ダウンロード・インストール方法 | 我が家の場合 (nekotokoban.com)

実施方法

クローズドなコミュニティにて、下記ステップを実施してメンバーに記事を作成していただく想定です。

  1. Sparkに関する基本的なトレーニングの実施
  2. 記事一覧の説明
  3. 記事の作成
  4. 記事の公開

実施内容の詳細

"1. Sparkに関する基本的なトレーニングの実施"について

下記のような内容で実施しました。

"2. 記事一覧の説明"について

記事一覧を作成します。2021年3月6日時点で、95の洗い出しを実施してます

"3. 記事の作成"について

詳細内容に関して下記のように整理する想定です

https://databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f173bcfc/1013987395344837/1855231811031894/4735237568341061/latest.html

記事内容の目次は下記として、単一のノートブック内でコードを実行できる状態とする。

番号 項目 記載内容
1 はじめに 記載内容の概要を記載。
2 検証環境 利用しているソフトウェア・ライブラリのバージョンを記載。
3 事前準備 コードを実行する上でのデータフレーム作成等の事前に実行するコードを記載。
4 実施方法 コードを記載。実装する方法が複数ある場合にも、記載。
5 注記事項 実装する上での注意事項を記載。
6 参考リンク 公式ドキュメント、参考にしたウェブサイト、参考にした書籍を記載。

"4. 記事の公開"について

記事については、下記のように整理する予定。
Databricks(Azure Databricks)でGithub経由でノートブックを共有する方法 - Qiita

記事の記載方法に関する指針

  • 記事内容の目次は下記として、単一のノートブック内でコードを実行できる状態とする。
番号 項目 記載内容
1 はじめに 記載内容の概要を記載。
2 検証環境 利用しているソフトウェア・ライブラリのバージョンを記載。
3 事前準備 コードを実行する上でのデータフレーム作成等の事前に実行するコードを記載。
4 実施方法 コードを記載。実装する方法が複数ある場合にも、記載。
5 注記事項 実装する上での注意事項を記載。
6 参考リンク 公式ドキュメント、参考にしたウェブサイト、参考にした書籍を記載。
  • ドキュメントへのリンクを貼り付ける際には、タイトル付きのリンクではりつける。

  • PySparkのドキュメントは、3.1.1バージョンのリンクを貼り付ける。3.1.1以降、ドキュメント体系が変更されました。URL内にlatestという記載がある場合には、バージョンを固定したいため、3.1.1に書き換えてください。

https://spark.apache.org/docs/3.1.1/api/python/reference/index.html

過去のドキュメントは、すべてのメソッドが羅列されているものでした。

pyspark.sql module — PySpark 3.0.1 documentation (apache.org)

成果物

現時点でなし。

Discussion