ToB企服应用市场:ToB评测及商务社交产业平台

标题: .NET for Apache Spark 入门演练 [打印本页]

作者: 渣渣兔    时间: 2022-11-11 17:50
标题: .NET for Apache Spark 入门演练
.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环境:
  1. dotnet --version
复制代码
打印出版本信息,则进行下一步。
1.2 安装 Java

安装 java 8 , 安装完成后可使用如下命令进行测试
  1. java ,  javac , java -version
复制代码
打印出版本信息,则进行下一步。
1.3  安装 Apache Spark

设置环境变量
  1. # 这里的 C:\bin 替换为自己的安装目录
  2. setx /M HADOOP_HOME C:\bin\spark-3.0.1-bin-hadoop2.7\
  3. setx /M SPARK_HOME C:\bin\spark-3.0.1-bin-hadoop2.7\
  4. setx /M PATH "%PATH%;%HADOOP_HOME%;%SPARK_HOME%bin"
复制代码
环境变量设置成功后,**打开新的命令行 **运行以下命令
  1. spark-submit --version
复制代码
如果打印出版本信息,则安装成功,进行下一步。
1.4 安装.NET for Apache Spark

1.5 安装 WinUtils(仅限 Windows)

.NET for Apache Spark 要求与 Apache Spark 一起安装 WinUtils。 下载 winutils.exe 。然后,将 WinUtils 复制到 C:\bin\spark-3.0.1-bin-hadoop2.7\bin。
设置环境变量
  1. # 这里的 C:\bin 替换为自己的安装目录
  2. setx /M DOTNET_WORKER_DIR  C:bin\Microsoft.Spark.Worker-2.1.1
复制代码
2 编写演练实例

在本地新建一个文本,输入如下内容
  1. Hello World
  2. This .NET app uses .NET for Apache Spark
  3. This .NET app counts words with Apache Spark
复制代码
打开 visual studio 2019,选择 .NetFramework,创建控制台程序。
引入 NuGet 包:Microsoft.Spark,默认最新版本2.1.1
在 Progarm.cs 文件中输入以下代码
  1.                      var inputTxt = @"C:\Users\Administrator\Desktop\新建文本文档.txt";
  2.             SparkSession spark = SparkSession
  3.                 .Builder()
  4.                 .AppName("word_count_sample")
  5.                 .GetOrCreate();
  6.             // Create initial DataFrame
  7.             DataFrame dataFrame = spark.Read().Text(inputTxt);
  8.             // Count words
  9.             DataFrame words = dataFrame
  10.                 .Select(Functions.Split(Functions.Col("value"), " ").Alias("words"))
  11.                 .Select(Functions.Explode(Functions.Col("words"))
  12.                 .Alias("word"))
  13.                 .GroupBy("word")
  14.                 .Count()
  15.                 .OrderBy(Functions.Col("count").Desc());
  16.             // Show results
  17.             words.Show();
  18.             // Stop Spark session
  19.             spark.Stop();
复制代码
编译输出。
执行。输入如下命令运行
  1. spark-submit --class  org.apache.spark.deploy.dotnet.DotnetRunner --master local  microsoft-spark-3-0_2.12-2.1.1.jar   ConsoleApp1.exe
复制代码
这里有个注意的地方,NuGet下载下来的包,在编译输出目录下会有4个jar包

这里选择第二个 microsoft-spark-3-0_2.12-2.1.1.jar,只有这个能运行成功 。其它3个应该是 .netcore平台下的,
执行结果如下:

说明第一次演练成功!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4