标签: azure-databricks

检查 Azure 中 Databricks 运行时的版本

是否可以在 Azure 中检查 Databricks Runtime 的版本?

version azure azure-databricks

8
推荐指数
2
解决办法
5176
查看次数

PySpark 和 Protobuf 反序列化 UDF 问题

我收到这个错误

Can't pickle <class 'google.protobuf.pyext._message.CMessage'>: it's not found as google.protobuf.pyext._message.CMessage

当我尝试在 PySpark 中创建 UDF 时。显然,它使用 CloudPickle 来序列化命令,但是,我知道 protobuf 消息包含C++实现,这意味着它不能被腌制。

我试图找到一种方法来覆盖CloudPickleSerializer,但是,我找不到方法。

这是我的示例代码:

from MyProject.Proto import MyProtoMessage
from google.protobuf.json_format import MessageToJson
import pyspark.sql.functions as F

def proto_deserialize(body):
  msg = MyProtoMessage()
  msg.ParseFromString(body)
  return MessageToJson(msg)

from_proto = F.udf(lambda s: proto_deserialize(s))

base.withColumn("content", from_proto(F.col("body")))
Run Code Online (Sandbox Code Playgroud)

提前致谢。

python pyspark databricks azure-databricks protobuf-python

8
推荐指数
1
解决办法
354
查看次数

在 pyspark databricks 中并行执行多个笔记本

问题很简单:

master_dim.py调用dim_1.pydim_2.py并行执行。这在 databricks pyspark 中可能吗?

下图解释了我想要做什么,由于某种原因它出错了,我在这里遗漏了什么吗?

在此输入图像描述

amazon-web-services databricks azure-databricks aws-databricks databricks-community-edition

8
推荐指数
2
解决办法
1万
查看次数

使用 AAD 令牌在 Databricks 中创建 Azure Key Vault 支持的秘密范围

我的最终目标是将 ADLS gen2 容器安装到我的 Databricks 工作区中,作为在 Azure 服务主体的支持下由 Terraform 管理的部署的一部分。这是一个单一部署,它创建所有 Azure 资源(网络、防火墙、存储帐户、Databricks 工作区等),然后使用 Databricks Terraform 提供程序配置 Databricks 工作区。

这个答案说我无法使用服务主体进行 AAD 直通安装,这意味着我必须使用 OAuth2 身份验证。为此,我需要 Databricks 中的 Azure Key Vault 支持的秘密范围。Terraform 文档说我只能通过基于用户的身份验证来做到这一点,而不能通过我的服务主体来做到这一点。

所以我想也许我可以实现一个 hack:在 Terraform 中创建一个 Databricks PAT(同样,始终作为服务主体),然后使用 Terraform 资源external“外壳”到 Databricks CLI,使用此 PAT 进行身份验证。我手动尝试了此操作并收到此错误:

{
  "error_code": "INVALID_PARAMETER_VALUE",
  "message": "Scope with Azure KeyVault must have userAADToken defined!"
}
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为 PAT 是为服务主体创建的。但是,作为替代方案,此答案建议使用 Azure AD 令牌身份验证,而不是 PAT。所以,我就从那个兔子洞里走下去!

我可以按照Microsoft 的文档获取 Azure AD 令牌,然后使用它对 Databricks CLI 进行身份验证:

export ARM_TENANT_ID="..." …
Run Code Online (Sandbox Code Playgroud)

azure azure-active-directory azure-keyvault azure-databricks databricks-cli

8
推荐指数
1
解决办法
4698
查看次数

服务主体的 Azure Databricks Git 凭据

我想使用对 Azure Devops 存储库的Git 引用来创建 Databricks 作业,该引用最好使用服务主体的 git 凭据。将服务主体添加到 Databricks 工作区非常简单,将服务主体添加到 Azure Devops 存储库也是如此。配置服务主体应使用的 git 凭据不太简单。根据git凭证API文档,该git_provider参数可以是;

服务主体无法创建令牌,例如个人访问令牌 (PAT) 或 SSH 密钥。他们可以生成自己的 Azure AD 令牌,这些令牌可用于调用 Azure DevOps REST API。

  • azureDevOpsServicesAAD:运行作业时,Databricks 会产生以下错误;

运行结果不可用:运行失败,并显示错误消息无法签出 Git 存储库:PERMISSION_DENIED:Git 提供程序凭据无效。转到用户设置 > Git 集成以确保:

  1. 您已输入带有 Git 提供商凭据的用户名。
  2. 您已使用您的凭据选择了正确的 Git 提供商。
  3. 您的个人访问令牌或应用程序密码具有正确的存储库访问权限。
  4. 您的个人访问令牌尚未过期。
  5. 如果您的 Git 提供商启用了 SSO,请务必授权您的令牌。

Azure Databricks 支持服务主体 git 凭据还是我做错了什么?

azure azure-devops azure-databricks

8
推荐指数
1
解决办法
2232
查看次数

如何从 Databricks mnt 目录中删除文件夹/文件

我正在运行 Databricks Community Edition,我想从以下 mnt 目录中删除文件

/mnt/driver-daemon/jars

我运行 dbutils 命令:

dbutils.fs.rm('/mnt/driver-daemon/jars/', True)

但是,当我运行命令时,我收到以下消息(这基本上意味着该文件夹尚未被删除)

Out[1]: False

有人可以让我知道我哪里出错了吗?理想情况下,我想删除 jars 文件夹中的所有文件,但是,如果有人可以帮助展示如何删除该文件夹,那就足够了。

databricks azure-databricks

7
推荐指数
1
解决办法
2万
查看次数

“databricks configure --token”挂起等待输入

我在 Azure DevOps 中运行以下任务,它总是挂起等待输入?为什么我的 bash 自动供给不工作?

databricksUrl=https://...
databricksToken=*****

databricks configure --token << EOF
$(databricksUrl)
$(databricksToken)
EOF
Run Code Online (Sandbox Code Playgroud)

azure-devops databricks azure-databricks databricks-cli

7
推荐指数
2
解决办法
7072
查看次数

Databricks 集群终止。原因:云提供商启动失败

我正在将 Azure Databricks 与使用 vnet 注入的自定义配置结合使用,但无法在工作区中启动群集。给出的错误消息没有记录在 Microsoft 或 databricks 文档中的任何位置,这意味着我无法诊断集群未启动的原因。我重现了以下错误消息:

Instance ID: [redacted]

Azure error message: 
Instance bootstrap failed.
Failure message: Cloud Provider Failure. Azure VM Extension stuck on transitioning state. Please try again later.
VM extension code: ProvisioningState/transitioning
instanceId: InstanceId([redacted])
workerEnv: workerenv-6662162805421143
Additional details (may be truncated): Enable in progress
Run Code Online (Sandbox Code Playgroud)

虽然它说“请稍后重试”,但我一整天都在尝试这个并收到相同的消息,这让我认为这个错误消息不是描述性的,而且确实发生了其他事情。

有人对问题可能是什么有想法吗?

azure databricks azure-databricks

7
推荐指数
1
解决办法
1万
查看次数

我正在尝试直接连接到 abfss(无需安装到 DBFS)并尝试使用 databricks 中的 open() 打开 json 文件

我正在尝试直接连接到 abfss(无需安装到 DBFS)并尝试使用 databricks 中的 open() 方法打开 json 文件。

json_file = open("abfss://@.dfs.core.windows.net/test.json') databricks 无法打开 azure blob 容器中存在的文件并出现以下错误:FileNotFoundError: [Errno 2] No such file 或目录:'abfss://@.dfs.core.windows.net/test.json'

我已经使用服务主体完成了所有配置设置。请建议使用 abfss 直接路径打开文件的其他方式。

azure pyspark azure-blob-storage open-json azure-databricks

7
推荐指数
1
解决办法
5791
查看次数

如何从 ADF 中的执行管道获取输出参数?

我有一个可以提供输出的 databricks 管道,但目前,我需要从执行管道运行 databricks,当我尝试运行它时,我的 databricks 输出没有显示在执行管道上?该管道无法显示输出吗?

这是我的 Databricks 输出结果。

[![在此处输入图像描述][1]][1]

这是我的执行管道。

在此输入图像描述

runOutput如何从执行管道获取结果?

azure azure-data-factory azure-databricks

7
推荐指数
1
解决办法
9693
查看次数