问题标签 [databricks-connect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - 使用 databricks-connect 提交 SparkApplication 时,Spark 驱动程序在哪里?
我正在使用私有服务器使用databricks-connect在数据块上提交一些作业。主机 Spark 驱动程序在哪里?在私人服务器上,它只是将作业发送给 databricks 工作者?我可以直接在我的服务器上看到 .show() 结果,这是什么意思?我是否使用客户端模式,并且 spark 驱动程序留在私人服务器上?
谢谢
apache-spark - 使用 databricks-connect 从 pycharm 调用 spark_udf 时的 MLflow FileNotFound
我正在将一个 scikit-learn 训练的模型保存到我的 Windows 笔记本电脑中的 MLflow 模型注册表中。我正在使用 databricks-connect 连接到 Azure Databricks 集群并从我的本地 Pycharm 在那里训练模型,但是为了开发,我在我的笔记本电脑中启动模型注册表并将训练好的模型保存在其中 - 以避免必须设置远程访问 DBFS .
我在使用 spark_udf 函数时遇到问题。我可以从笔记本电脑的模型注册表中读取模型,但不能将其用作 Databricks 集群中的 UDF:
pyspark.sql.utils.PythonException:从 UDF 引发异常:'FileNotFoundError:
[Errno 2] 没有这样的文件或目录:
'/local_disk0/spark-1fa39b20-9d2c-4697-957c-392d80326dee/exectutor-57b039d8-472405-472472-612e912e9b87b87b3ddddddddddd dd/spark-e44242414.4424.44c6 park y44c6e4.4b4c6 aky44.4c6pary7b4.4c6pary7-4c6 pary-4.4 car 0944cc91ef4d/c:\temp\tmpsl4hpeyt.zip'
最后一部分很奇怪,因为它混合了 linux 风格的路由和 Windows 路由(就像我的 Windows 笔记本电脑本地目录中的路由)。我以为驱动程序会从模型注册表中读取模型并将其广播给工作人员以调用 UDF,但看起来工作人员正试图直接从远程模型注册表中获取它,对吗?是否有不需要将模型保存在远程模型注册表中的解决方案 - 或者至少,配置安全性以访问 DBFS?
编辑:设置将模型注册到远程注册表后(没那么难!)我现在可以将注册模型下载为 sklearn 模型并使用它进行预测,但我不能通过 spark_udf 做同样的事情。我得到
- 如果我在函数 spark_udf 中通过 runs:/.... 指定模型,则会出现相同的 FileNotFound 错误
- 如果我在 spark_udf 中通过 model:/... 指定模型,则会出现 SSL 错误(未经验证的自签名证书),即使我已在 .databrickscfg 中明确添加了新行
insecure = True
- 因为这不起作用,所以也添加了os.environ["MLFLOW_TRACKING_INSECURE_TLS"] = "true"
但没有效果。我猜它正在做一些事情,因为至少我可以从注册表中下载模型,当它不是 spark_udf,但看起来像“工人?” 当他们尝试做同样的事情时遇到问题(这是我的猜测,不知道这是否有意义)
python - Databricks Connect:自动接受许可提示
我正在尝试编写一个Dockerfile
构建一个利用 Databricks Conenect 的容器。RUN
因此,我需要通过 Docker命令设置和安装 Databricks Connect 。我有以下内容:
作为产生我的问题的简化示例。step:databricks-connect configure
提示使用 default 接受许可N
,因此引发以下错误:
我怎样才能自动接受它作为 Docker 构建的一部分?
python - Databricks 连接 java.lang.ClassNotFoundException
我在 Azure Databricks 上将我们的 databricks 集群更新为 DBR 9.1 LTS,但是当我尝试使用 Databricks-connect 在 VS Code 中运行它时,我经常使用的一个包给我一个错误,而以前的集群没有。以前的集群在 DBR 8.3 上运行。我也更新了软件包以与新的 DBR 集群兼容。maven 坐标是
com.azure.cosmos.spark:azure-cosmos-spark_3-1_2-12:4.3.0。当我直接在 Databricks 笔记本中运行以下脚本时,它可以工作,但是当我使用 Databricks-connect 运行它时,会出现以下错误。
我在使用 Databricks 连接的 VS 代码中得到的错误如下:
我已将包的jar文件添加到以下目录:.venv\lib\site-packages\pyspark\jars
c# - 从 .NET 运行增量表查询
我正在尝试从我的 .NET 应用程序运行增量表查询。现在根据我的研究,我发现 jdbc/odbc 是从我的 .NET 应用程序连接到 Databricks 的唯一方法。但是,jdbc/odbc 需要我下载一些软件才能连接到我的 Databricks。这让我很困扰,因为我不知道我的应用在部署时会如何表现?我需要部署这个 odbc 软件(我相信 Simba ODBC)吗?
我似乎也找不到关于这个主题的任何代码示例。如果您知道一些,我会非常乐意将它们作为正确的流程。因此,如果您知道或有关于此特定问题的代码示例,请发布它们 :)
c# - 通过 ODBC 连接 Databricks,无需下载驱动程序
我需要连接到 Databricks 才能从我的 .NET 应用程序运行查询。我想避免使用这种Rest API
方法并使用 ODBC,但我看到,为了使 ODBC 方法起作用,我需要下载 ODBC 驱动程序(Simba Spark)。那么,我可以在没有任何 ODBC 驱动程序的情况下通过 ODBC 连接 Databricks 吗?
我需要这个,因为当需要在我的 Web 应用程序上进行部署时,我发现这些驱动程序无法部署在 Azure 上,所以基本上我只能在本地进行这项工作。但这不是我的目标,目标是部署它并投入生产,为不同的条件和不同的查询提供服务。
pyspark - 运行 Databricks Connect 时调用 collectToPython 时出现 StackOverflowError
我正在使用 DataBricks Connect 在远程集群上运行 PySpark 应用程序。当另一列具有特定值时,我在尝试检索列的最小值时遇到问题。运行以下行时:
我收到此错误:
Java 堆栈跟踪很长,但根本没有信息。同样,Python 堆栈跟踪仅指向它失败的行并且不提供任何有用的信息。
数据框非常小,1000 行或更少。当直接在同一个集群上运行代码时,问题不会发生。当在安装了 PySpark 的不同 conda 环境中本地运行它时,它也不会发生。
我看到了这个问题maxResultSize
并按照建议进行了更改。我尝试了 10g 和 0(无限)都无济于事。
我认为这应该与我本地计算机上的 Spark 配置有关,但除了maxResultSize
我没有更改 Databricks Connect 安装的默认设置之外的任何内容。顺便说一句,按照说明,DB Connect 安装在没有 PySpark 的单独 conda 环境中。我的本地机器和集群上都运行了 Python 3.8.10,并且为我的 DBR 安装了正确的 DB Connect 版本。
如果有任何帮助,这是我的 Spark 配置:
提前感谢任何输入,我对 Spark 还是很陌生,让 DB Connect 正常工作将是天赐之物。
python - 从 Python 创建 Spark 上下文以运行 databricks sql
我一直在学习本教程,它让我可以从 Python 连接到 Databricks,然后运行增量表查询。但是,我偶然发现了一个问题。当我第一次运行它时,我收到以下错误:
找不到帐户 storage-account.blob.core.windows.net 中的容器容器名称,我们无法使用匿名凭据创建它,并且在配置中找不到它们的凭据。
当我回到我的 Databricks 集群并运行此代码段时
(在哪里StorageAccountName
和AccessKey
已知)然后再次运行我的 Python 应用程序,它成功运行而不会抛出以前的错误。我想问一下,有没有办法从我的 Python 应用程序运行此代码片段,同时将其反映在我的 Databricks 集群上?
java - 无法使私有 java.nio.DirectByteBuffer(long,int) 可访问
我正在使用 Python 通过databricks-connect
. 在墙后面,这使用了确实是基于 java 的 spark,所以为了使用它,我需要 java。JDK 已下载(版本 14),设置为 JAVA_HOME 环境,但是当我运行代码时,出现以下错误:
原因:java.lang.reflect.InaccessibleObjectException:无法使私有 java.nio.DirectByteBuffer(long,int) 可访问:模块 java.base 不会“打开 java.nio”到未命名模块 @bccb269
这是它崩溃的代码
我用谷歌搜索但找不到这个错误,我认为这不是第一次发生在我身上。任何想法这个错误意味着什么,我该如何解决?
python - Databricks 连接测试无限期挂起“系统找不到指定的路径”。
我已按照此页面上的说明在 Windows 10、Python 3.8、databricks 版本 9.1 上安装 databricks-connect,以连接到 Azure Databricks 集群:
https://towardsdatascience.com/get-started-spark-with-databricks-and-pyspark-72572179bd03
当我运行时:
我收到此错误:
它无限期地挂起。进一步调查显示它挂在对 spark-submit.cmd 的调用中(因此调用了 spark-submit2.cmd)。
我在本地没有任何其他 Spark 安装。
该问题已在 databricks 7.3 和 9.1 上复制
我可以做些什么来进一步诊断问题?