Window环境的 .Net for Spark 入门
准备环境
在开始编写应用之前,需要先设置一些必备依赖项。 如果可从命令行环境运行 dotnet、java、mvn 和 spark-shell,则表示你的环境已经准备完成。如果还不能全部执行,这边就不说了,请查看官网微软官方.NET for Apache Spark 入门教程
使用 vs2019 开发
-
首先创建一个core控制台项目
-
使用nuget添加Microsoft.Spark包
-
直接替换Program.cs中的Main方法代码如下:
public static void Main(string[] args) { // Create a Spark session. SparkSession spark = SparkSession .Builder() .AppName("word_count_sample") .GetOrCreate(); // Create initial DataFrame. DataFrame dataFrame = spark.Read().Text("input.txt"); // 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(); }
添加完代码后在项目的调试目录下建一个input.txt文件,内容如下:
Hello World
This .NET app uses .NET for Apache Spark
This .NET app counts words with Apache Spark
-
直接运行就报出一个异常([JvmBridge] 由于目标计算机积极拒绝,无法连接。 127.0.0.1:5567)
-
这边我们需要在项目下去运行命令行:
spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local microsoft-spark-2.4.x-0.12.1.jar debug
-
在上一步命令行执行成功后,我们再去运行程序。结果如下: