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环境:
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
镜像站:
Index of /dist/spark/spark-3.0.1 (apache.org)
下载完成后,使用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平台下的,
执行结果如下:
说明第一次演练成功!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4