问题标签 [azure-databricks]

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.

0 投票
2 回答
145 浏览

apache-spark - PySpark 相当于一个简单的 SQL 连接

这可能是一个非常简单的问题。

但我自己并没有走得太远。

我正在尝试在 Databricks 中使用 PySpark 来执行相当于查询的 SQL:

请注意,两侧的两个属性on名称不同。

你能告诉我相同的pyspark版本吗?在我看来,与此相比,这里的许多切线帖子都超过了顶级复杂。

我发现了这个,这真的很接近,但返回的数据框是 ta & tb 的所有列。

inner_join = ta.join(tb, ta.name == tb.name)

0 投票
2 回答
559 浏览

azure - Azure Databricks 上的 R 版本

Azure Databricks 目前运行 R 版本 3.4.4 (2018-03-15),我认为这是不可接受的,因为 CRAN 上的最新 R 版本是 3.5.2 (2018-12-20)。

我的问题是:我是否可以在 Azure Databricks 上升级和安装 R 版本 3.5.2?后续问题,是否有任何关于 Databricks 上 R 的发布时间表的信息?

0 投票
4 回答
57882 浏览

apache-spark - 如何从 PySpark 中的数据框中获取模式定义?

在 PySpark 中,您可以定义一个模式并使用此预定义模式读取数据源,例如:

对于某些数据源,可以从数据源推断模式并获得具有此模式定义的数据框。

是否可以从数据帧中获取模式定义(以上述形式),其中数据已被推断出?

df.printSchema()将模式打印为树,但我需要重用模式,将其定义如上,因此我可以读取具有此模式的数据源,该模式之前已从另一个数据源推断。

0 投票
3 回答
2326 浏览

apache-spark - Azure Databricks - 无法从笔记本读取简单的 Blob 存储文件

我已经使用 databricks 运行时版本 5.1(包括 Apache Spark 2.4.0、Scala 2.11)和 Python 3 建立了一个集群。我还在集群中安装了 hadoop azure 库(hadoop-azure-3.2.0)。

我正在尝试读取存储在我的 blob 存储帐户中的 blob,它只是一个文本文件,其中包含一些由空格分隔的数字数据。我使用databricks生成的模板来读取blob数据

其中 file_location 是我的 blob 文件 ( https://xxxxxxxxxx.blob.core.windows.net )。

我收到以下错误:

没有名为 https 的文件系统

我尝试使用 sc.textFile(file_location) 读取 rdd 并得到相同的错误。

在此处输入图像描述

0 投票
1 回答
5802 浏览

python - 获取 HTTP 错误 403 - 尝试通过 Azure 数据块访问集群时访问令牌无效

我正在尝试通过 python 脚本访问 Azure databricks spark 集群,该脚本将令牌作为通过 databricks 用户设置生成的输入并调用 Get 方法来获取集群的详细信息以及集群 ID。

下面是代码片段。如图所示,我在中南区创建了一个集群。

预期结果应该给出集群的全部细节,例如。 {"cluster_id":"0128-******","spark_context_id":3850138716505089853,"cluster_name":"abcdxyz","spark_version":"5.1.x-scala2.11","spark_conf":{"spark.databricks.delta.preview.enabled":"true"},"node_type_id" and so on .....}

当我在 google colaboratory 上执行代码时,上面的代码正在工作,而我的本地 IDE 即空闲时同样不能工作。它给出了 HTTP 403 的错误,如下所示:

谁能帮我解决这个问题?我被困在这部分,无法通过 API 访问集群。

0 投票
2 回答
1962 浏览

scala - 如何在火花罐中使用 dbutils.secrets

所以我目前正在尝试为我的 Databricks 开发环境设置秘密。我已经使用 Databricks-cli 成功设置了这些。我现在正尝试在我的 spark jar 中使用这些(用 scala 编写)。然而,它需要在本地编译和在 ci/cd 管道中才能被实时推送。

但是我找不到位于哪个包dbutils中。

... = dbutils.secrets.get(scope = "SCOPE", key = "VARIABLE")

这是我正在尝试实现的用例,不胜感激!

0 投票
0 回答
3999 浏览

apache-spark - Spark 2.4.0 - 无法将 ISO8601 字符串解析为 TimestampType 保留 ms

尝试使用 cast(TimestampType) 将带有时区信息的 ISO8601 字符串转换为 TimestampType 时,仅接受使用时区格式 +01:00 的字符串。如果时区以 ISO8601 合法方式 +0100(不带冒号)定义,则解析失败并返回 null。我需要在保留 ms 部分的同时将字符串转换为 TimestampType。

我尝试使用 to_timestamp() 和 unix_timestamp().cast(TimestampType) 函数。不幸的是,他们截断了我需要保留的时间戳的 ms 部分。此外,您需要将它们应用于新列,并且不能对复杂类型中的属性进行就地替换(如果我在 from_json 函数的架构中将 ApiReceived 属性设置为 TimestampType ,这是可能的)。

上述DataFrame的输出类型

和输出值

有没有办法让 Spark 在不求助于 UDF:s 的情况下处理转换?

更新

经过更彻底的调查,我发现 Sparks 的日期时间解析有些不一致。:)

我运行这些数据帧并比较输出,这有点令人沮丧。最宽松的 formatString 是第二个 SSSX

处理此问题的唯一合理方法是确保所有 ISO8601 字符串都符合您计划使用的函数理解的标准的 UDF。

尽管如此,还没有找到一种方法来保留两种格式的毫秒部分。

更新 2

https://issues.apache.org/jira/browse/SPARK-17545?jql=project%20%3D%20SPARK%20AND%20text%20~%20iso8601

显然,混合基本形式和扩展形式不符合 ISO8601 标准。字符串“2019-02-05T14:06:31.556+0100”不是标准格式。不过根据 RFC822 似乎是正确的。

如果我正确理解 JIRA 票证,则标准解析(即字符串列上的 cast() )仅处理正确格式化的 ISO8601 字符串,而不是 RFC822 或其他边缘情况(即混合扩展格式和基本格式)。如果您有边缘情况,则必须提供格式字符串并使用另一种解析方法。

我无权访问 ISO8601:2004 标准,因此无法检查,但如果 JIRA 中的评论正确,则互联网需要更新。许多网页将 RFC822 和 ISO8601 混为一谈,并将“2019-02-05T14:06:31.556+0100”列为合法的 ISO8601 字符串。

0 投票
1 回答
485 浏览

azure - 没有 /FileStore 和 /Users 的 Azure Databricks

我刚刚在 Azure 上创建了一个 Databricks 工作区,并为 Databricks CLI 配置了访问令牌。

一切正常。Blob 存储安装、JDBC 数据库访问和 CLI。

但是:文件系统看起来很奇怪。我记得打电话时在哪里/Users/FileStore下面。他们失踪了dbfs:/dbfs ls

为笔记本选择“复制文件路径”时,路径是预期的/Users/user@ad.domain/NoteBookName,但调用时既不显示路径也不显示笔记本dbfs ls

这里发生了什么?

0 投票
3 回答
1118 浏览

python-3.x - 从 Azure Databricks 笔记本登录到 Azure ML 工作区

我正在 Azure Databricks 集群中编写一个 python 笔记本来执行 Azure 机器学习实验。我创建了一个 Azure ML 工作区并在我的笔记本中实例化了一个工作区对象,如下所示:

我正在尝试执行交互式登录到 azure 以访问工作区,但是当我运行笔记本时,我收到以下错误。笔记本是用python写的

有人可以帮我解决这个问题吗?这真的是 OpenSSL 问题吗?

0 投票
2 回答
5593 浏览

python - 带有python的databricks不能使用fs模块AttributeError:模块'dbutils'没有属性'fs'

我第一次使用 azure databricks 读取一些文件并尝试将 python 与 dbutils.fs.ls("/mnt") 一起使用

但是我收到一条错误消息,说 dbutils 没有 fs 模块。我正在阅读并说所有数据块都已经带有 dbutils。

在此处输入图像描述

如果我做

['Console','DBUtils','FileInfo','Iterable','ListConverter','MapConverter','MountInfo','NotebookExit','Py4JJavaError','SecretMetadata','SecretScope','WidgetsHandlerImpl',' builtins '、' cached '、' doc '、' file '、' loader '、' name '、' package '、' spec '、'absolute_import'、'makeTensorboardManager'、'namedtuple'、'print_function'、'range' , 'stderr', 'stdout', 'string_types', 'sys', 'zip']

我发现它假设库已经安装了 https://docs.databricks.com/user-guide/dev-tools/dbutils.html#dbutils

有魔术吗?我想检查我是否安装了一个文件,如果没有安装它并卸载它。