如何使用dotnet spark正确实例化spark会话?

时间:2019-09-10 14:53:00

标签: c# .net apache-spark

我一直在关注dotnet spark上的文档,以开始使用Windows上的库。可以找到该指南:

在GitHub上:https://github.com/dotnet/spark/blob/master/docs/getting-started/windows-instructions.md

有关Microsoft文档:https://docs.microsoft.com/en-us/dotnet/spark/tutorials/get-started

我似乎无法使用C#创建Spark会话。我在命令行上安装了spark,可以在命令行中运行它。这是我一直在使用的代码,与指南相同。

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();
        }
    }
}

当我在Visual Studio中运行程序时,出现错误:

System.Net.Internals.SocketExceptionFactory.ExtendedSocketException: 
'No connection could be made because the target machine actively refused it 127.0.0.1:5567'

在线:

var spark = SparkSession.Builder().GetOrCreate();

2 个答案:

答案 0 :(得分:0)

我最终重新安装了软件包(Microsoft.Spark),然后在powershell中运行给定here的调试命令。运行命令后,我能够将Visual Studio调试器附加到该进程,并可以使用C#代码成功创建Spark会话。

答案 1 :(得分:0)

您正在尝试直接从Visual Studio调试解决方案。您需要创建一个部署环境。为此,您需要按照您自己发布的第二个链接中的“为Apache Spark应用程序运行.NET”部分中的说明进行启动。

打开powershell并输入:

spark-submit `
--class org.apache.spark.deploy.dotnet.DotnetRunner `
--master local `
microsoft-spark-2.4.x-<version>.jar `
dotnet HelloSpark.dll

如果只需要调试,请输入:

spark-submit `
--class org.apache.spark.deploy.dotnet.DotnetRunner `
--master local `
microsoft-spark-2.4.x-<version>.jar
debug

然后像往常一样在Visual Studio中工作。