.NET for Apache Spark 入門演練 微軟官方文檔: .NET for Apache Spark 入門 | Microsoft Learn 註意:由於本次在windows平臺下進行演練,以下在未標註操作系統平臺處,預設為windows。 1. 環境準備 推薦安裝工具: visual ...
.NET for Apache Spark 入門演練
微軟官方文檔: .NET for Apache Spark 入門 | Microsoft Learn
註意:由於本次在windows平臺下進行演練,以下在未標註操作系統平臺處,預設為windows。
1. 環境準備
推薦安裝工具: visual studio 2019, 7-zip 或 bandzip 解壓工具
1.1 安裝.Net
推薦安裝 visual studio 2019 作為編碼IDE,同時它會自動安裝 .net 開發環境。
在windows開發環境下,安裝了visual studio 2019或者其它版本時已經安裝了.net開發環境。故不做詳細說明。
在命令行輸入以下命令驗證是否有.net環境:
dotnet --version
列印出版本信息,則進行下一步。
1.2 安裝 Java
安裝 java 8 , 安裝完成後可使用如下命令進行測試
java , javac , java -version
列印出版本信息,則進行下一步。
1.3 安裝 Apache Spark
-
本文使用 spark-3.0.1-bin-hadoop2.7.tgz。
-
官網下載地址:Downloads | Apache Spark
-
下載完成後,使用7-zip提取嵌套的 .tar文件,然後解壓 .tar文件
-
取消7-zip界面的 "提取到" 勾選框
設置環境變數
# 這裡的 C:\bin 替換為自己的安裝目錄
setx /M HADOOP_HOME C:\bin\spark-3.0.1-bin-hadoop2.7\
setx /M SPARK_HOME C:\bin\spark-3.0.1-bin-hadoop2.7\
setx /M PATH "%PATH%;%HADOOP_HOME%;%SPARK_HOME%bin"
環境變數設置成功後,**打開新的命令行 **運行以下命令
spark-submit --version
如果列印出版本信息,則安裝成功,進行下一步。
1.4 安裝.NET for Apache Spark
- 從 GitHub Releases · dotnet/spark (github.com) 下載。 這裡下載 Microsoft.Spark.Worker.net461.win-x64-2.1.1.zip 版本,因為本文是基於 .NetFramework 演練。
- 使用7-zip提取嵌套的 .tar文件,然後解壓 .tar文件
- 取消7-zip界面的 "提取到" 勾選框
1.5 安裝 WinUtils(僅限 Windows)
.NET for Apache Spark 要求與 Apache Spark 一起安裝 WinUtils。 下載 winutils.exe 。然後,將 WinUtils 複製到 C:\bin\spark-3.0.1-bin-hadoop2.7\bin。
設置環境變數
# 這裡的 C:\bin 替換為自己的安裝目錄
setx /M DOTNET_WORKER_DIR C:bin\Microsoft.Spark.Worker-2.1.1
2 編寫演練實例
在本地新建一個文本,輸入如下內容
Hello World
This .NET app uses .NET for Apache Spark
This .NET app counts words with Apache Spark
打開 visual studio 2019,選擇 .NetFramework,創建控制台程式。
引入 NuGet 包:Microsoft.Spark,預設最新版本2.1.1
在 Progarm.cs 文件中輸入以下代碼
var inputTxt = @"C:\Users\Administrator\Desktop\新建文本文檔.txt";
SparkSession spark = SparkSession
.Builder()
.AppName("word_count_sample")
.GetOrCreate();
// Create initial DataFrame
DataFrame dataFrame = spark.Read().Text(inputTxt);
// Count words
DataFrame words = dataFrame
.Select(Functions.Split(Functions.Col("value"), " ").Alias("words"))
.Select(Functions.Explode(Functions.Col("words"))
.Alias("word"))
.GroupBy("word")
.Count()
.OrderBy(Functions.Col("count").Desc());
// Show results
words.Show();
// Stop Spark session
spark.Stop();
編譯輸出。
執行。輸入如下命令運行
spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local microsoft-spark-3-0_2.12-2.1.1.jar ConsoleApp1.exe
- spark-submit 提交給spark執行
- --calss 執行程式
- --master 本地還是遠程倉庫,選local, 然後 指定 microsoft-spark 版本,然後 指定用戶程式
這裡有個註意的地方,NuGet下載下來的包,在編譯輸出目錄下會有4個jar包
- microsoft-spark-2-4_2.11-2.1.1.jar
- microsoft-spark-3-0_2.12-2.1.1.jar
- microsoft-spark-3-1_2.12-2.1.1.jar
- microsoft-spark-3-2_2.12-2.1.1.jar
這裡選擇第二個 microsoft-spark-3-0_2.12-2.1.1.jar,只有這個能運行成功 。其它3個應該是 .netcore平臺下的,
執行結果如下:
說明第一次演練成功!
本文來自博客園,作者:宣君,轉載請註明原文鏈接:https://www.cnblogs.com/ycit/p/16880620.html