如何使用 dotnet spark 正确实例化 spark 会话?
Posted
技术标签:
【中文标题】如何使用 dotnet spark 正确实例化 spark 会话?【英文标题】:How to correctly instantiate a spark session with dotnet spark? 【发布时间】:2019-09-10 14:53:00 【问题描述】:我一直在关注 dotnet spark 上的文档以开始在 Windows 上使用该库。可以找到本指南:
在 GitHub 上:https://github.com/dotnet/spark/blob/master/docs/getting-started/windows-instructions.md
关于微软文档: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();
【问题讨论】:
从控制台确保你有一个实例化的火花实例。如果在系统环境设置中定义了 spark 环境,则键入 spark-shell 并实例化 spark 并再次运行您的代码。SPARK_HOME
是在环境变量和HADOOP_HOME
中定义的,我在运行代码之前已经启动了spark-shell。同样的错误。
我认为 Visual Studio 不允许您从调试器连接。使用 args 传递 json 文件并尝试使用 spark-submit 调用您的 exe,如下所示 spark-submit \ --class org.apache.spark.deploy.dotnet.DotnetRunner \ --master local \ 我最终重新安装了软件包 (Microsoft.Spark),然后在 powershell 中运行给定 here 的调试命令。运行命令后,我能够将 Visual Studio 调试器附加到该进程,并且可以使用 C# 代码成功创建 spark 会话。
【讨论】:
【参考方案2】:您正在尝试直接从 Visual Studio 调试您的解决方案。您需要创建一个部署环境。为此,您需要按照您自己发布的第二个链接的“运行您的 .NET for Apache Spark 应用程序”部分中的说明启动。
打开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 中工作。
【讨论】:
以上是关于如何使用 dotnet spark 正确实例化 spark 会话?的主要内容,如果未能解决你的问题,请参考以下文章
MultiBlocProvider 未实例化所有 bloc 提供程序 - 如何正确使用 MultiBlocProvider?
实例化 HiveSessionState 中的 Spark2 数据加载问题
如何在 laravel 之外正确实例化 Iluminate 类
java.lang.IllegalArgumentException:实例化'org.apache.spark.sql.hive.HiveSessionState'时出错:使用spark会话读取csv