「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>.NET for Apache Spark]] * 目次 [#je3d6ac1] #contents *概要 [#ee897365] **チュートリアル [#cbcd8222] 以下のチュートリアルを実施してみた。 >[[Get started in 10 minutes>#g7fce881]]~ ≒ [[.NET for Apache Spark 101>#vf8b2398]]-α~ ≒ [[.NET for Apache Spark ガイド>#zd2d65ee]]-α~ ≠ github.com...README.md#get-started **前提 [#s695f3aa] -情報源 --2020/11の情報 --Microsoft Docsベース -ローカルはWindows --.NET:netcoreapp3.1 --Java:jdk-8u201-windows-x64.exe --Apache Spark ---ver:2.4.1 ---パス: C:\prog\spark\spark-2.4.1-bin-hadoop2.7 --.NET for Apache Spark ---ver:1.0.0 ---パス: C:\prog\spark\Microsoft.Spark.Worker-1.0.0 --winutils.exe ---ver:.../hadoop-2.7.1/bin/winutils.exe ---パス: C:\prog\spark\spark-2.4.1-bin-hadoop2.7\bin -その他 --7-Zip(インストール済み) *詳細 [#oa8d7c9e] **開発 [#le456446] ***[[Get started in 10 minutes>#g7fce881]] [#s680c185] -デモを見た限り、入力はTXTファイルで単語を数える。 -[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]で単語を数える(いきなりハードル高い)。 -[[分散環境では、どのように入力を取得するのか?>#bf921206]] -コピペ用CMD --Apache Spark ---HOMEの指定 setx /M HADOOP_HOME C:\prog\spark\spark-2.4.1-bin-hadoop2.7\ setx /M SPARK_HOME C:\prog\spark\spark-2.4.1-bin-hadoop2.7\ setx /M PATH "%PATH%;%HADOOP_HOME%;%SPARK_HOME%\bin" ---動作確認 >spark-submit --version Welcome to / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.4.1 /_/ Using Scala version 2.11.12, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_201 Branch Compiled by user on 2019-03-26T22:44:44Z Revision Url Type --help for more information. --.NET for Apache Spark ---パス設定 setx /M DOTNET_WORKER_DIR C:\prog\spark\Microsoft.Spark.Worker-1.0.0 ---動作確認~ 以下のアプリをビルドして動作させる。 -アプリ --物体~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/Azure/DotNet4ApacheSpark/MySparkApp --実行 \MySparkApp\bin\Debug\netcoreapp3.1>spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-2-4_2.11-1.0.0.jar ^ dotnet MySparkApp.dll input.txt ... 20/11/19 12:39:29 INFO CodeGenerator: Code generated in 10.4659 ms +------+-----+ | word|count| +------+-----+ | .NET| 3| |Apache| 2| | app| 2| | This| 2| | Spark| 2| | World| 1| |counts| 1| | for| 1| | words| 1| | with| 1| | Hello| 1| | uses| 1| +------+-----+ 20/11/19 12:39:29 INFO SparkUI: Stopped Spark web UI at http://nishi.mshome.net:4040 ... ***バッチ処理 [#l7b4829d] -デモを見た限り、入力はCSVファイルで集計処理を行う。 -集計処理は以下の2つ --[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]で言語毎のフォークの平均回数を降順に並べる。 --[[UDF>.NET for Apache Spark#w1fa929a]]を[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]から利用し、指定の日付以降の更新日付を示す。 -同様に、[[分散環境では、どのように入力を取得するのか?>#bf921206]] ***構造化ストリーミング [#v2288c2e] (別名、マイクロ・バッチ) -デモを見た限り、入力はNetcatからのテキスト行で、変換処理を行う。 -[[UDF>.NET for Apache Spark#w1fa929a]]を[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]から利用し、エンリッチメントする。 -なお、ストリーミング処理では、ループを書くのではなく、StreamingQueryを使用する模様。 -同様に、[[分散環境では、どのように入力を取得するのか?>#bf921206]] -参考 --Spark Structured Streaming with Kafka~ https://www.slideshare.net/SotaroKimura/spark-structured-streaming-with-kafka ***[[ML.NET]] での感情分析 [#bb5afcf2] -デモを見た限り、入力はyelptest.csvで、感情分析を行う。 -なお、学習は、yelptrain.csvを使用して行う。 -学習の結果、XXXXML.Modelプロジェクトが生成されるので、参照を追加する。 -ML処理を呼出す[[UDF>.NET for Apache Spark#w1fa929a]]を[[クエリ構文のSpark SQL>.NET for Apache Spark#x77ba954]]から利用する。 -同様に、[[分散環境では、どのように入力を取得するのか?>#bf921206]] **デプロイ [#b151a3cc] リンク先を読むと解るが差は僅か。 ***[[Azure HDInsight>Azure HDInsight#g5c4a9f0]] [#y2aa662f] ***[[Azure Databricks>Azure Databricks#e7380cc6]] [#afd6d3ae] **分散環境での入出力 [#bf921206] ***分散環境 [#o8d2ac58] [[デプロイ>#b151a3cc]]を見ると、クラスタ上で、~ 複数のジョブを起動すれば良い。 ***入出力 [#n48f44d7] -[[.NET for Apache Sparkのデータ接続]] *参考 [#g102834f] **msdn.com [#y8581d41] ***Channel 9 > .NET for Apache Spark 101 [#vf8b2398] 「[[.NET for Apache Spark ガイドのチュートリアル部>#zd2d65ee]]」を動画化してある。 -https://channel9.msdn.com/Series/NET-for-Apache-Spark-101 --What is .NET for Apache Spark? [1 of 8]~ https://channel9.msdn.com/Series/NET-for-Apache-Spark-101/What-is-NET-for-Apache-Spark --Run Your First .NET for Apache Spark App [2 of 8]~ https://channel9.msdn.com/Series/NET-for-Apache-Spark-101/Run-Your-First-NET-for-Apache-Spark-App --Batch Processing with .NET for Apache Spark [3 of 8]~ https://channel9.msdn.com/Series/NET-for-Apache-Spark-101/Batch-Processing-with-NET-for-Apache-Spark --Structured Streaming with .NET for Apache Spark [4 of 8]~ https://channel9.msdn.com/Series/NET-for-Apache-Spark-101/Structured-Streaming-with-NET-for-Apache-Spark --Sentiment Analysis with .NET for Apache Spark and ML.NET ---Part 1 [5 of 8]~ https://channel9.msdn.com/Series/NET-for-Apache-Spark-101/Sentiment-Analysis-with-NET-for-Apache-Spark-and-MLNET-Part-1 ---Part 2 [6 of 8]~ https://channel9.msdn.com/Series/NET-for-Apache-Spark-101/Sentiment-Analysis-with-NET-for-Apache-Spark-and-MLNET-Part-2 --Deploy .NET for Apache Spark App to ---[[Azure HDInsight>Azure HDInsight#w086a731]] ---[[Azure Databricks>Azure Databricks#qb9ddd3a]] -YouTube~ https://www.youtube.com/playlist?list=PLdo4fOcmZ0oXklB5hhg1G1ZwOJTEjcQ5z **microsoft.com [#x7a1c48d] ***Get started in 10 minutes [#g7fce881] https://dotnet.microsoft.com/learn/data/spark-tutorial/intro -Install .NET~ https://dotnet.microsoft.com/learn/data/spark-tutorial/install-dotnet -Install Prerequisites~ https://dotnet.microsoft.com/learn/data/spark-tutorial/install-pre-reqs -Install Apache Spark~ https://dotnet.microsoft.com/learn/data/spark-tutorial/install-spark -Install .NET for Apache Spark~ https://dotnet.microsoft.com/learn/data/spark-tutorial/install-worker -Create your app~ https://dotnet.microsoft.com/learn/data/spark-tutorial/create -Install NuGet package~ https://dotnet.microsoft.com/learn/data/spark-tutorial/install-package -Add data file~ https://dotnet.microsoft.com/learn/data/spark-tutorial/data -Code your app~ https://dotnet.microsoft.com/learn/data/spark-tutorial/code -Run your app~ https://dotnet.microsoft.com/learn/data/spark-tutorial/run ***[[Microsoft Docs > .NET for Apache Spark ガイド>.NET for Apache Spark#w086a731]] [#zd2d65ee] -チュートリアル --.NET for Apache Spark の概要(作業開始)~ (≒ [[Get started in 10 minutes>#g7fce881]])~ https://docs.microsoft.com/ja-jp/dotnet/spark/tutorials/get-started --その他のチュートリアル .NET for Apache Spark~ ---...を使用したバッチ処理のチュートリアル~ https://docs.microsoft.com/ja-jp/dotnet/spark/tutorials/batch-processing ---...を使用した構造化ストリーミングのチュートリアル~ https://docs.microsoft.com/ja-jp/dotnet/spark/tutorials/streaming ---...と ML.NET での感情分析のチュートリアル~ https://docs.microsoft.com/ja-jp/dotnet/spark/tutorials/ml-sentiment-analysis --.NET for Apache Spark アプリケーションをデプロイする~ ---[[Azure HDInsight>Azure HDInsight#w086a731]] ---[[Azure Databricks>Azure Databricks#qb9ddd3a]] -使い方ガイド --[[データーへの接続>.NET for Apache Sparkのデータ接続#i96a74c2]] ---- Tags: [[:クラウド]], [[:Azure]], [[:.NET開発]], [[:.NET Core]], [[:.NET Standard]]