环境准备 可以借鉴 .NET for Apache Spark 入门 | Microsoft Learn
1、win 环境准备
win环境 需要下载 java 1.8 Java Downloads | Oracle
spark-3.2.1-bin-hadoop3.2 Index of /dist/spark/spark-3.2.1
本人使用环境 如下图
如需别的版本请查看 .NET Spark 发行说明
下载完成 spark-3.2.1-bin-hadoop3.2 请自行提取到你自己硬盘目录,最好不要放在中文命名文件中,本人自己是放在 D:\spark-3.2.1-bin-hadoop3.2
开始配置win 环境变量
HADOOP_HOME D:\SparkNet\spark-3.2.1-bin-hadoop3.2
然后再系统环境变量Path 中 添加 %SPARK_HOME%\bin
现在可以进入 win+R 命令行 cmd 试试
spark-submit --version
如果该命令运行并打印出版本信息,则可转到下一步。
如果收到 'spark-submit' is not recognized as an internal or external command
错误,请确保已打开新的命令提示符。
安装 .NET for Apache Spark
从 .NET for Apache Spark GitHub 下载 Microsoft.Spark.Worker。 例如,如果你在使用 Windows 计算机并计划使用 .NET Core,请下载 Windows x64 netcoreapp3.1 版本。
要提取 Microsoft.Spark.Worker:
- 找到你已下载的 Microsoft.Spark.Worker.netcoreapp3.1.win-x64-1.0.0.zip 文件。
- 右键单击并选择“7-Zip”->“提取文件...”。
- 在“提取到”字段输入“C:\bin” 。
- 取消勾选“提取到”字段下面的复选框。
- 选择“确定”。
安装 WinUtils(仅限 Windows)
.NET for Apache Spark 要求与 Apache Spark 一起安装 WinUtils。 下载 winutils.exe。 然后,将 WinUtils 复制到 C:\bin\spark-3.0.1-bin-hadoop2.7\bin。
备注
如果你在使用其他版本的 Hadoop(相关批注可参见 Spark 安装文件夹名称的末尾),请选择与你的 Hadoop 版本兼容的 WinUtils 版本。
设置 DOTNET_WORKER_DIR 并检查依赖项
运行以下命令之一来设置 DOTNET_WORKER_DIR
环境变量,.NET 应用使用该变量查找 .NET for Apache Spark 辅助角色二进制文件。 确保将 <PATH-DOTNET_WORKER_DIR>
替换为你下载并提取 Microsoft.Spark.Worker
的目录。 在 Windows 上,确保在管理员模式下运行命令提示符。
win 控制台复制
setx /M DOTNET_WORKER_DIR <PATH-DOTNET-WORKER-DIR>
最后,仔细检查是否可从命令行运行 dotnet
、java
、spark-shell
,然后再转到下一部分。
2、工程建立
vs2022 建立控制台程序-引用NuGet包 :Microsoft.Spark ,如下图
编写代码
SparkSession spark = SparkSession
.Builder()
.AppName("Connect to SQL Server")
.GetOrCreate();
string connection_url = "jdbc:mysql://{链接地址}:3306/{database}?useUnicode=true&characterEncoding=utf-8";
string dbtable = "<database table to access>";
string user = "<Login user name>";
string password = "<Login user password>";
DataFrame jdbcDF = spark.Read()
.Format("jdbc")
.Option("driver", "com.mysql.jdbc.Driver")
.Option("url", connection_url)
.Option("dbtable", dbtable)
.Option("user", user)
.Option("password", password).Load();
jdbcDF.Show();
使用mysql 需要去下载mysql jdbc MySQL :: MySQL Community Downloads
下载之后jar 文件复制到 spark-3.2.1-bin-hadoop3.2 文件夹中jars中
启动运行
spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local bin\Debug\net6.0\microsoft-spark-3-2_2.12-2.1.1.jar dotnet bin\Debug\net6.0\SparkNet.dll
成功链接到mysql 查询分析到表数据