「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>.NET for Apache Spark]] --.NET for Apache Sparkチュートリアル --[[.NET for Apache Sparkのデータ接続]] --[[.NET for Apache SparkのSQL]] * 目次 [#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] ***初回 [#c8e7248e] -OS~ Windows -ランタイム --.NET:netcoreapp3.1 --Java:jdk-8u201-windows-x64.exe -ミドルウェア --Apache Spark ---ver:2.4.1 ---パス: C:\prog\dev\spark\spark-2.4.1-bin-hadoop2.7 --.NET for Apache Spark ---ver:1.0.0 ---パス: C:\prog\dev\spark\Microsoft.Spark.Worker-1.0.0 --winutils.exe~ Windowsで利用できるHadoopバイナリ ---ver:.../hadoop-2.7.1/bin/winutils.exe ---パス: C:\prog\dev\spark\spark-2.4.1-bin-hadoop2.7\bin -その他 --7-Zip(インストール済み) ***Ver-UP 1 [#z5eb69b2] -Apache Spark --ver:3.0.1 ---パス: C:\prog\dev\spark\spark-3.0.1-bin-hadoop2.7 --.NET for Apache Spark ---ver:2.0.0 ---パス: C:\prog\dev\spark\Microsoft.Spark.Worker-2.0.0 -実行時、spark-submitの引数に指定する、~ <application-jar>のバージョンを上げておく。 microsoft-spark-2-4_2.11-1.0.0.jar → microsoft-spark-3-0_2.12-2.0.0.jar *詳細 [#oa8d7c9e] **開発 [#le456446] ***[[Get started in 10 minutes>#g7fce881]] [#s680c185] -概要 --デモを見た限り、入力はTXTファイルで単語を数える。 --[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]で単語を数え集計して表示(いきなりハードル高い)。 -CMDコピペ用 --Apache Spark ---HOMEの指定 setx /M HADOOP_HOME C:\prog\dev\spark\spark-2.4.1-bin-hadoop2.7\ setx /M SPARK_HOME C:\prog\dev\spark\spark-2.4.1-bin-hadoop2.7\ setx /M PATH "%PATH%;%HADOOP_HOME%;%SPARK_HOME%bin" ※ &color(red){注意};:\binとすると、spark-3.0.1-bin-hadoop2.7&color(red){\\};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\dev\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 ... --[[SQLの説明>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Spark%20SQL#oaa10345]] ***[[バッチ処理>#zd2d65ee]] [#l7b4829d] -概要 --デモを見た限り、入力はCSVファイルで集計処理を行う。 --集計処理は以下の2つ ---[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]で言語毎のフォークの平均回数を降順に並べる。 ---[[UDF>.NET for Apache Spark#w1fa929a]]を[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]から利用し、指定の日付以降の更新日付を示す。 -アプリ --物体~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/Azure/DotNet4ApacheSpark/mySparkBatchApp --実行 >spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-2-4_2.11-1.0.0.jar ^ dotnet mySparkBatchApp.dll projects_smaller.csv ... +----+--------------------+--------+--------------------+--------------------+--------+---------------+-----------+-------+-------------------+ | id| url|owner_id| name| descriptor|language| created_at|forked_from|deleted| updated_at| +----+--------------------+--------+--------------------+--------------------+--------+---------------+-----------+-------+-------------------+ | 1|https://api.githu...| 1| ruote-kit|RESTful wrapper f...| Ruby|12/8/2009 10:17| 2| 0| 11/5/2015 1:15| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| | 4|https://api.githu...| 24| basemap| null| C++|6/14/2012 14:14| 3| 1|0000-00-00 00:00:00| | 5|https://api.githu...| 28| cocos2d-x|Port of cocos2d-i...| C++|3/12/2012 16:48| 6| 0| 10/22/2015 17:36| |null| null| null| null| null| null| null| null| null| null| | 7|https://api.githu...| 42| cocos2d-x|Port of cocos2d-i...| C|4/23/2012 10:20| 6| 0| 11/1/2015 17:32| |null| null| null| null| null| null| null| null| null| null| | 9|https://api.githu...| 66| rake-compiler|Provide a standar...| Ruby| 8/1/2012 18:33| 14556189| 0| 11/3/2015 19:30| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| | 12|https://api.githu...| 70|heroku-buildpack-...| null| Shell| 8/2/2012 12:50| 11| 0| 11/2/2015 7:34| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| |null| null| null| null| null| null| null| null| null| null| +----+--------------------+--------+--------------------+--------------------+--------+---------------+-----------+-------+-------------------+ only showing top 20 rows +--------------------+--------------------+-----------+----------------+-----------+-------+-------------------+ | name| descriptor| language| created_at|forked_from|deleted| updated_at| +--------------------+--------------------+-----------+----------------+-----------+-------+-------------------+ | ruote-kit|RESTful wrapper f...| Ruby| 12/8/2009 10:17| 2| 0| 11/5/2015 1:15| | cocos2d-x|Port of cocos2d-i...| C++| 3/12/2012 16:48| 6| 0| 10/22/2015 17:36| | cocos2d-x|Port of cocos2d-i...| C| 4/23/2012 10:20| 6| 0| 11/1/2015 17:32| | rake-compiler|Provide a standar...| Ruby| 8/1/2012 18:33| 14556189| 0| 11/3/2015 19:30| | cobertura-plugin|Jenkins cobertura...| Java| 7/26/2012 18:46| 193522| 0| 11/1/2015 19:55| | scala-vs-erlang|A performance tes...| Erlang|12/25/2011 13:51| 1262879| 0| 10/22/2015 4:50| | opencv|OpenCV GitHub Mirror| C++| 8/2/2012 12:50| 29| 0| 10/26/2015 6:44| | redmine_git_hosting|A ChiliProject/Re...| Ruby| 7/30/2012 12:53| 42| 0| 10/28/2015 10:54| | redmine_git_hosting|A ChiliProject/Re...| Ruby|10/26/2011 23:17| 207450| 0| 10/27/2015 22:43| | OpenCV-iOS|This project is a...|Objective-C| 8/2/2012 12:55| 39| 1|0000-00-00 00:00:00| | browserid|A secure, distrib...| JavaScript| 6/30/2012 22:35| 1589| 0| 10/10/2015 0:34| | protobuf-cmake|CMake build suppo...| \N| 8/2/2012 14:35| 61| 0| 10/31/2015 1:22| | loso|Chinese segmentat...| Python| 8/2/2012 12:57| 67| 1|0000-00-00 00:00:00| | yui3| YUI 3.x Source Tree| JavaScript| 7/13/2012 14:48| 55| 1|0000-00-00 00:00:00| | doctag_java|Java library for ...| Java| 8/2/2012 12:57| 70| 1|0000-00-00 00:00:00| |willdurand.github...| My new blog!| JavaScript| 8/2/2012 12:06| 84| 0| 11/4/2015 9:15| | manaserv|A flexible 2D MMO...| C++| 8/1/2011 17:05| 90| 0| 10/10/2015 4:42| | manaserv|A flexible 2D MMO...| C++| 3/24/2011 17:38| 90| 0| 10/16/2015 18:29| | libuv|platform layer fo...| C| 8/2/2012 12:57| 74| 0| 10/31/2015 8:21| | cucumber-js|Pure Javascript C...| JavaScript| 5/28/2012 15:47| 10457| 1|0000-00-00 00:00:00| +--------------------+--------------------+-----------+----------------+-----------+-------+-------------------+ only showing top 20 rows +------------+------------------+ | language| avg(forked_from)| +------------+------------------+ | Racket| 1.2550711E7| | Makefile| 3611689.0| |ActionScript| 2474502.75| | Erlang| 1262879.0| | C#| 914767.625| | PHP| 617219.4333333333| | C++| 448911.1538461539| | Ruby|349311.23214285716| | Perl| 298380.0| | Puppet| 253680.5| | JavaScript| 240718.6494845361| | Java| 149923.71875| | Python| 76043.26190476191| | Shell| 13276.6| | Objective-C|2281.4761904761904| | \N| 1995.095238095238| | C|1576.4705882352941| | Scala| 1358.5| | Groovy| 1049.0| | HaXe| 829.0| +------------+------------------+ only showing top 20 rows [2021-06-25T05:26:32.6714551Z] [NISHI] [Debug] [ConfigurationService] Using the environment variable to construct .NET worker path: ...\spark\Microsoft.Spark.Worker-1.0.0\Microsoft.Spark.Worker.exe. +--------------------+--------------------+-----------+----------------+-----------+-------+-------------------+----------+ | name| descriptor| language| created_at|forked_from|deleted| updated_at|datebefore| +--------------------+--------------------+-----------+----------------+-----------+-------+-------------------+----------+ | ruote-kit|RESTful wrapper f...| Ruby| 12/8/2009 10:17| 2| 0| 11/5/2015 1:15| true| | cocos2d-x|Port of cocos2d-i...| C++| 3/12/2012 16:48| 6| 0| 10/22/2015 17:36| true| | cocos2d-x|Port of cocos2d-i...| C| 4/23/2012 10:20| 6| 0| 11/1/2015 17:32| true| | rake-compiler|Provide a standar...| Ruby| 8/1/2012 18:33| 14556189| 0| 11/3/2015 19:30| true| | cobertura-plugin|Jenkins cobertura...| Java| 7/26/2012 18:46| 193522| 0| 11/1/2015 19:55| true| | scala-vs-erlang|A performance tes...| Erlang|12/25/2011 13:51| 1262879| 0| 10/22/2015 4:50| true| | opencv|OpenCV GitHub Mirror| C++| 8/2/2012 12:50| 29| 0| 10/26/2015 6:44| true| | redmine_git_hosting|A ChiliProject/Re...| Ruby| 7/30/2012 12:53| 42| 0| 10/28/2015 10:54| true| | redmine_git_hosting|A ChiliProject/Re...| Ruby|10/26/2011 23:17| 207450| 0| 10/27/2015 22:43| true| | OpenCV-iOS|This project is a...|Objective-C| 8/2/2012 12:55| 39| 1|0000-00-00 00:00:00| false| | browserid|A secure, distrib...| JavaScript| 6/30/2012 22:35| 1589| 0| 10/10/2015 0:34| false| | protobuf-cmake|CMake build suppo...| \N| 8/2/2012 14:35| 61| 0| 10/31/2015 1:22| true| | loso|Chinese segmentat...| Python| 8/2/2012 12:57| 67| 1|0000-00-00 00:00:00| false| | yui3| YUI 3.x Source Tree| JavaScript| 7/13/2012 14:48| 55| 1|0000-00-00 00:00:00| false| | doctag_java|Java library for ...| Java| 8/2/2012 12:57| 70| 1|0000-00-00 00:00:00| false| |willdurand.github...| My new blog!| JavaScript| 8/2/2012 12:06| 84| 0| 11/4/2015 9:15| true| | manaserv|A flexible 2D MMO...| C++| 8/1/2011 17:05| 90| 0| 10/10/2015 4:42| false| | manaserv|A flexible 2D MMO...| C++| 3/24/2011 17:38| 90| 0| 10/16/2015 18:29| false| | libuv|platform layer fo...| C| 8/2/2012 12:57| 74| 0| 10/31/2015 8:21| true| | cucumber-js|Pure Javascript C...| JavaScript| 5/28/2012 15:47| 10457| 1|0000-00-00 00:00:00| false| +--------------------+--------------------+-----------+----------------+-----------+-------+-------------------+----------+ only showing top 20 rows ... --[[SQLの説明>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Spark%20SQL#n1c1114b]] ***[[構造化ストリーミング>#zd2d65ee]] [#v2288c2e] -概要~ (別名、マイクロ・バッチ) --デモを見た限り、入力はNetcatからのテキスト行で、変換処理を行う。 --[[UDF>.NET for Apache Spark#w1fa929a]]を[[メソッド構文のSpark SQL>.NET for Apache Spark#x77ba954]]から利用し、エンリッチメントする。 --なお、ストリーミング処理では、ループを書くのではなく、StreamingQueryを使用する模様。 ---これは、Spark SQL エンジンに基づいた、Structured Streamingによる。 ---StreamingQueryのStartでアプリケーションが開始する(読込 → 変換 → 書込の逐次実行)。 ---StreamingQueryのAwaitTerminationでアプリケーションが外部から停止されるまで実行。 -アプリ --物体~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/Azure/DotNet4ApacheSpark/mySparkStreamingApp --実行 ---[[ncコマンド>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?nc%20%28netcat%29%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89]]でリスナーを作成([[WSL>Windows Subsystem for Linux]]を使用 $ nc -lk 9999 abcdefg ---spark-submitでデプロイ >spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-2-4_2.11-1.0.0.jar ^ dotnet mySparkStreamingApp.dll localhost 9999 ... ------------------------------------------- Batch: x ------------------------------------------- +---------+ | col| +---------+ | abcdefg| |abcdefg 7| +---------+ --[[SQLの説明>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Spark%20SQL#kfcf74cc]] -参考 --[[Spark Streaming - 開発基盤部会 Wiki > Structured Streaming>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Spark%20Streaming#z0ea8bef]] --Spark Structured Streaming with Kafka~ https://www.slideshare.net/SotaroKimura/spark-structured-streaming-with-kafka ***[[ML.NETでの感情分析>#zd2d65ee]] [#bb5afcf2] &color(red){ココから以降、Microsoft.Sparkのバージョンを2.0.0に上げている。}; -概要 --デモを見た限り、入力はyelptest.csvで、感情分析を行う。 --なお、学習は、yelptrain.csvを使用して行う。 --学習の結果、XXXXML.Modelプロジェクトが生成されるので、参照を追加する。 --ML処理を呼出す[[UDF>.NET for Apache Spark#w1fa929a]]を[[クエリ構文のSpark SQL>.NET for Apache Spark#x77ba954]]から利用する。 -学習 --シナリオ タイルは「感情分析」ではなく「テキストの分類」。~ --また、「トレーニンする時間」が短いと、~ 「トレーニング期間が終了しましたが、トレーニングされたモデルがありません。」~ なるエラーが発生することがある(時間を長くすると解決する)。 GPU Service not found. Falling back to CPU AutoML Service. | Trainer MicroAccuracy MacroAccuracy Duration #Iteration | |1 AveragedPerceptronOva 0.7885 0.7924 5.0 1 | |2 SdcaMaximumEntropyMulti 0.7966 0.7675 7.2 2 | |3 LightGbmMulti 0.7442 0.7365 11.4 3 | |4 SymbolicSgdLogisticRegressionOva 0.7115 0.7144 3.4 4 | ===============================================Experiment Results================================================= ------------------------------------------------------------------------------------------------------------------ | Summary | ------------------------------------------------------------------------------------------------------------------ |ML Task: multiclass-classification | |Dataset: ...\MLSparkModel\yelptrain.csv | |Label : Sentiment | |Total experiment time : 27.0050593 Secs | |Total number of models explored: 4 | ------------------------------------------------------------------------------------------------------------------ | Top 4 models explored | ------------------------------------------------------------------------------------------------------------------ | Trainer MicroAccuracy MacroAccuracy Duration #Iteration | |1 SdcaMaximumEntropyMulti 0.7966 0.7675 7.2 1 | |2 AveragedPerceptronOva 0.7885 0.7924 5.0 2 | |3 LightGbmMulti 0.7442 0.7365 11.4 3 | |4 SymbolicSgdLogisticRegressionOva 0.7115 0.7144 3.4 4 | ------------------------------------------------------------------------------------------------------------------ Code Generated -アプリ --物体~ https://github.com/OpenTouryoProject/SampleProgram/tree/master/Azure/DotNet4ApacheSpark/MLSparkModel --実行 >spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-3-0_2.12-2.0.0.jar ^ dotnet MLSparkModelML.ConsoleApp.dll yelptest.csv MLModel.zip ... +--------------------+---------+ | ReviewText|Sentiment| +--------------------+---------+ |Waitress was swee...| 1| |I also had to tas...| 1| |I'd rather eat ai...| 0| |Cant say enough g...| 1| |The ambiance was ...| 1| |The waitress and ...| 1| |I would not recom...| 0| |Overall I wasn't ...| 0| |My gyro was basic...| 0| | Terrible service!| 0| |Thoroughly disapp...| 0| |I don't each much...| 1| |Give it a try, yo...| 1| |By far the BEST c...| 1| |Reasonably priced...| 1| |Everything was pe...| 1| |The food is very ...| 1| |it was a drive to...| 0| |At first glance i...| 1| |Anyway, I do not ...| 0| +--------------------+---------+ only showing top 20 rows ※ 色々と試したが、動かなかった。 ※ &color(red){色々と試したが、動かなかった。}; > -UDF仕込んでshowするとエラーになったり、 -Could not load type 'Microsoft.ML.Data.DataViewTypeAttribute' と言うエラーが出たり。 --[[SQLの説明>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Spark%20SQL#g8615de3]] ***ウィンドウ関数の利用 [#w3d503ab] -概要~ ウィンドウ関数で、対象レコード以外の~ レコードを参照することができるらしい。 -アプリ~ --物体~ 以下を比較。 ---https://github.com/dotnet/spark/blob/main/examples/Microsoft.Spark.CSharp.Examples/Sql/Streaming/StructuredNetworkCharacterCount.cs ---https://github.com/dotnet/spark/blob/main/examples/Microsoft.Spark.CSharp.Examples/Sql/Streaming/StructuredNetworkWordCount.cs ---https://github.com/dotnet/spark/blob/main/examples/Microsoft.Spark.CSharp.Examples/Sql/Streaming/StructuredNetworkWordCountWindowed.cs ---https://github.com/dotnet/spark/blob/main/examples/Microsoft.Spark.CSharp.Examples/Sql/Streaming/StructuredKafkaWordCount.cs --実行~ ---[[構造化ストリーミング>#v2288c2e]]同様、~ ncでリスナーを作成([[WSL>Windows Subsystem for Linux]]を使用 $ nc -lk 9999 abcdefg ---StructuredNetworkCharacterCountの実行結果 >spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-3-0_2.12-2.0.0.jar ^ dotnet StructuredNetworkCharacterCount.dll localhost 9999 ... ------------------------------------------- Batch: 0 ------------------------------------------- +---+ |col| +---+ +---+ ... ------------------------------------------- Batch: 1 ------------------------------------------- 21/07/30 11:18:09 INFO CodeGenerator: Code generated in 10.39 ms +--------+ | col| +--------+ | dsada| | dsada 5| | dsadas| |dsadas 6| +--------+ ... ---StructuredNetworkWordCountの実行結果 >spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-3-0_2.12-2.0.0.jar ^ dotnet StructuredNetworkWordCount.dll localhost 9999 ... トラブルシューティング中 ※ &color(red){トラブルシューティング中}; ---StructuredNetworkWordCountWindowedの実行結果 >spark-submit ^ --class org.apache.spark.deploy.dotnet.DotnetRunner ^ --master local ^ microsoft-spark-3-0_2.12-2.0.0.jar ^ dotnet StructuredNetworkWordCountWindowed.dll localhost 9999 ... トラブルシューティング中 ※ &color(red){トラブルシューティング中}; -参考 --[[同様の処理をPython (PySpark)で書く(structured_network_wordcount_windowed.py)>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?PySpark#x623bccd]] **デプロイ [#b151a3cc] リンク先を読むと解るが差は僅か。 ***[[Azure HDInsight>Azure HDInsight#g5c4a9f0]] [#y2aa662f] ***[[Azure Databricks>Azure Databricks#td9a437e]] [#afd6d3ae] **分散環境での入出力 [#bf921206] ***分散環境 [#o8d2ac58] -基本的には、マネージド・サービスのクラスタを利用する。 -[[分散処理は、Spark SQLにより、隠蔽される。>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Apache%20Spark#ee411713]] ***入出力 [#n48f44d7] -[[.NET for Apache Sparkのデータ接続]] **遅延評価で実現されること。 [#z135909e] ***[[自動的な分散>#o8d2ac58]]。 [#t663993c] ***[[ストリーミング>#v2288c2e]]。 [#x0138a72] ループで書かない。 *参考 [#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]]