.NET for Apache Spark 入门演练

  • .NET for Apache Spark 入门演练已关闭评论
  • 122 次浏览
  • A+
所属分类:.NET技术
摘要

微软官方文档: .NET for Apache Spark 入门 | Microsoft Learn注意:由于本次在windows平台下进行演练,以下在未标注操作系统平台处,默认为windows。


.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

设置环境变量

# 这里的 C:bin 替换为自己的安装目录 setx /M HADOOP_HOME C:binspark-3.0.1-bin-hadoop2.7 setx /M SPARK_HOME C:binspark-3.0.1-bin-hadoop2.7 setx /M PATH "%PATH%;%HADOOP_HOME%;%SPARK_HOME%bin" 

环境变量设置成功后,**打开新的命令行 **运行以下命令

spark-submit --version 

如果打印出版本信息,则安装成功,进行下一步。


1.4 安装.NET for Apache Spark


1.5 安装 WinUtils(仅限 Windows)

.NET for Apache Spark 要求与 Apache Spark 一起安装 WinUtils。 下载 winutils.exe 。然后,将 WinUtils 复制到 C:binspark-3.0.1-bin-hadoop2.7bin。

设置环境变量

# 这里的 C:bin 替换为自己的安装目录 setx /M DOTNET_WORKER_DIR  C:binMicrosoft.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:UsersAdministratorDesktop新建文本文档.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包
.NET for Apache Spark 入门演练

  • 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平台下的,

执行结果如下:
.NET for Apache Spark 入门演练

说明第一次演练成功!