栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

Spark.Net(C#)Windows开发环境安装配置

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spark.Net(C#)Windows开发环境安装配置

微软加入ASF之后.NET生态拓展得越来越好了,可喜可贺。
本文基于.NET for Apache® Spark™

  • Java 1.8
  • Apache Spark 2.4.1
  • .NET Framework 4.7.2
  • VS2019

java version “1.8.0_301”
Java™ SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot™ 64-Bit Server VM (build 25.301-b09, mixed mode)

按照 Getting Started with Spark .NET on Windows 和 Building Spark .NET on Windows 的说明安装依赖、配置环境变量。

  1. 下载Microsoft.Spark.Worker和spark-2.4.1-bin-hadoop2.7,解压后放到C:bin下。
  2. 新增环境变量DOTNET_WORKER_DIR,值为C:binMicrosoft.Spark.Worker
  3. 将路径C:binspark-2.4.1-bin-hadoop2.7bin加入到环境变量PATH中
  4. 注意:虽然Getting Started with Spark .NET on Windows里没说,但是WinUtils还是需要的。必须要装!
    先确定需要安装的版本:跟Hadoop的版本一样,到C:binspark-2.4.1-bin-hadoop2.7jars下面看版本,我这个包里是2.7.3,那就装2.7.3版本的WinUtils。winutils 这个作者太忙了,另外一个人接手,所以真正的下载地址应该在 这里 。下载之后还是解压完放到C:bin下面,并设置环境变量HADOOP_HOME为C:binhadoop-2.7.3,然后把C:binhadoop-2.7.3bin加到PATH里。
  5. 打开VS2019,新建一个Console App,比如说叫Spark.NetFW.Demo,然后把示例代码粘贴进Program.cs里:
using Microsoft.Spark.Sql;

namespace HelloSpark
{
    class Program
    {
        static void Main(string[] args)
        {
            var spark = SparkSession.Builder().GetOrCreate();
            var df = spark.Read().Json("people.json");
            df.Show();
        }
    }
}

并建一个people.json文件,随便写点东西进去,只要不是do not copy就行。或者干脆直接到输出目录下建这个文件都可以。
6. 打开Package Manager Console,安装Microsoft.Spark
7. 编译
8. 打开一个命令行窗口,切换目录到Spark.NetFW.Demo的输出目录下,执行:

spark-submit `
--class org.apache.spark.deploy.dotnet.DotnetRunner `
--master local `
microsoft-spark-2-4_2.11-2.0.0.jar `
Spark.NetFW.Demo.exe

看github的说明里人家写的是:

spark-submit `
--class org.apache.spark.deploy.dotnet.DotnetRunner `
--master local `
microsoft-spark-.jar `
dotnet HelloSpark.dll

这个<version>有文章,
我们可以看到输出目录下有3个jar包:

文件名里面2.11和2.12指的应该是scala的版本。而我下载的spark 2.4.1用的是scala 2.11.12,scala的版本号如果对不上,则会报一个NoSuchMethodError的错误:

java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/spark/internal/Logging

也就是说,不管我们是用.NET core还是.NET Framework,我们都只能用microsoft-spark-2-4_2.11-2.0.0.jar这个包。用.NET core 3.1和.NET Framework 4.7.2创建的项目我都进行了尝试,只要jar包指定对了就没问题,.NET的版本目前看没发现有影响。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号