「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Apache Spark]] *目次 [#k30dfef7] #contents *概要 [#r180bc95] [[.NET for Apache Spark>Apache Spark#a2ce8cf5]]のチュートリアル用環境で動作したので。 *詳細 [#i5025fa2] **Jupyter Notebook [#y2664b01] -Jupyter Notebookドキュメントを作成・共有するためのウェブアプリケーション -プログラムコード、Markdownテキスト、数式、図式等を含むことができる。 -そのため、以下のように表現される。 --PythonなどをWebブラウザ上で記述・実行できる統合開発環境 --ブラウザ上で Python やその他のプログラミング言語のプログラムを~ 実行したり、実行した結果を保存したり共有したりすることができるツール -参考 --Project Jupyter - Wikipedia~ https://ja.wikipedia.org/wiki/Project_Jupyter **チュートリアル [#n212eaf0] ***[[on Docker Databricks>#f615d0ec]] [#ffe40eef] ローカルでもできそうだったが、手軽そうなDockerをチョイス。 -[[Docker]]前提で(ここでは、[[Docker for Windows>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows]]を使用した) -環境のコンテナを docker run する。 docker run -it -p 8888:8888 jupyter/pyspark-notebook -最後に表示されたURLにアクセスする。 [C 03:39:12.997 NotebookApp] To access the notebook, open this file in a browser: file:///home/jovyan/.local/share/jupyter/runtime/nbserver-7-open.html Or copy and paste one of these URLs: http://xxxxx:8888/?token=xxxxx or http://127.0.0.1:8888/?token=xxxxx -New から Notebook: Python3 を選択し Notebook を開く。 -「In []:」に以下を貼り付けて RUN [▶] を押下する。 --ハロー・ワールド風 from pyspark.sql import SparkSession spark: SparkSession = SparkSession.builder.appName("SimpleApp").getOrCreate() # do something to prove it works spark.sql('SELECT "Test" as c1').show() --以下のような結果が表示され、動作が確認できる。 +----+ | c1| +----+ |Test| +----+ -「In []:」に以下を貼り付けて RUN [▶] を押下する。 from typing import List, Tuple from pyspark.sql import SparkSession from pyspark.sql import DataFrame from pyspark.sql.types import StructField, StructType, StringType, IntegerType Trainer = Tuple[int, str, str, int] trainers: List[Trainer] = [ (1, 'サトシ', 'male', 10), (2, 'シゲル', 'male', 10), (3, 'カスミ', 'female', 12), ] trainers_schema = StructType([ StructField('id', IntegerType(), True), StructField('name', StringType(), True), StructField('gender', StringType(), True), StructField('age', IntegerType(), True), ]) trainers_df: DataFrame = spark.createDataFrame( spark.sparkContext.parallelize(trainers), trainers_schema ) trainers_df.show() -以下のような結果が表示され、動作が確認できる。 +---+------+------+---+ | id| name|gender|age| +---+------+------+---+ | 1|サトシ| male| 10| | 2|シゲル| male| 10| | 3|カスミ|female| 12| +---+------+------+---+ -DataFrame を Row の list で返す。 --前述に以下を追記。 result = trainers_df.collect() print(result) --以下のような結果が表示され、動作が確認できる。 ***[[on Azure Databricks>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Databricks%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB#r15035b9]] [#p629aafe] *参考 [#z4b7048e] -PySpark環境構築メモ - Smile Engineering Blog~ https://smile-jsp.hateblo.jp/entry/2020/05/07/012432 -WindowsでSpark(PySpark)環境をつくる - goodbyegangsterのブログ~ https://goodbyegangster.hatenablog.com/entry/2018/06/27/022915 **Qiita [#f615d0ec] -Ubuntu18.04 (WSL)でpyspark+jupyterの環境を手早く作る~ https://qiita.com/gaborotta/items/0d324f58ae3f0149db2a -Apache Spark を Jupyter Notebook で試す (on ローカル Docker~ https://qiita.com/mangano-ito/items/dac5582a331d40a484ad -Jupyter NotebookでのpySparkコードサンプル~ https://qiita.com/kazurof/items/0e8e46771cd845b7edbb -【PySpark】dataframe操作サンプルコード集~ https://qiita.com/YujiHamada3/items/0220bb68efb5c1e6ef62