.NET for Apache Spark 入门演练

打印 上一主题 下一主题

主题 846|帖子 846|积分 2538

.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
复制代码

  • 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平台下的,
执行结果如下:

说明第一次演练成功!

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表