- 追加された行はこの色です。
- 削除された行はこの色です。
「[[.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