问题标签 [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.
apache-spark-sql - 如何使用 Spark sql 在 Databricks 中使用内部联接更新 Databricks Delta 表
我必须使用与其他表的内连接来更新表列。我尝试使用下面的 sql。但我在 Databricks 中遇到错误(SQL 语句中的错误:ParseException:不匹配的输入''期待'WHEN')。我尝试了不同的更新表格的方法。有人可以帮我解决这个问题如何解决这个问题吗?
azure-data-lake - 将路径文件夹输出到没有“ColumnName =”的 Data Lake Store
是否可以在不返回路径“ColumnName=Value”的情况下使用函数 partitionBy 或其他函数?
我在 azure databricks 中使用 python 笔记本将 csv 文件发送到 Azure Data Lake Store。使用的 Cmd 如下:
期望有这条路径:/Test/2018/12/11
而不是:/Test/Year=2018/Month=12/Day=11
teradata - 如何从 Azure Databricks 访问本地 Teradata
我们需要从 Azure Databricks 连接到本地 Teradata。
这有可能吗?
如果是,请告诉我如何。
databricks - 在 Azure Data Bricks 中为多个查询重复使用事件中心流
在 Azure Databricks Structured Streaming(scala notebook,连接到 Azure IoT Hub)中,我在 Azure IoT Hub 的 Event Hub 兼容端点上打开一个流。然后,我根据结构化模式解析传入流,并在同一流上创建 3 个查询 (groupBy)。大多数时候(似乎并非总是如此)我在分区上一个纪元值周围的一个显示查询中遇到异常。(见下文)我正在使用一个没有其他应用程序正在读取的专用消费者组。那么,我猜想会支持打开 1 个流并对其进行多个流式查询吗?
任何建议,任何解释或想法来解决这个问题?(我想避免必须创建 3 个消费者组并再次定义流 3 次)
异常示例:
org.apache.spark.SparkException:作业因阶段失败而中止:阶段 1064.0 中的任务 3 失败 4 次,最近一次失败:阶段 1064.0 中丢失任务 3.3(TID 24790、10.139.64.10、执行程序 7):java.util。 concurrent.CompletionException:com.microsoft.azure.eventhubs.ReceiverDisconnectedException:创建具有更高纪元“0”的新接收器,因此当前接收器与纪元“0”断开连接。如果您正在重新创建接收器,请确保使用更高的 epoch。TrackingId:xxxx, SystemTracker:iothub-name|databricks-db, Timestamp:2019-02-18T15:25:19, errorContext[NS: yyy, PATH: savanh-traffic-camera2/ConsumerGroups/databricks-db/Partitions/3, REFERENCE_ID:a0e445_7319_G2_1550503505013,PREFETCH_COUNT:500,LINK_CREDIT:500,PREFETCH_Q_LEN:0]
这是我的代码:(清理)
apache-spark - 优化 Azure Databricks 中每个核心的任务数
我正在使用Azure Databricks通过使用SparkR和gapplyCollect()
.
项目概况
- 我有10000 多个类似的数据源,每天生成大量交易信息进行分析;
- 我有一个R 函数,可以一次分析1 个数据源的所有信息,为我提供有关该特定数据源的一些有价值的见解;
- 因此,每天我需要执行我的 R 函数 10000 多次来分析我的所有数据。
代码逻辑
- 读取所有数据(来自关系数据库)作为
SparkDataframe
groupBy()
SparkDataframe
基于我的数据源列(数据按数据源列均匀分布)- 使用
gapplyCollect()
上GroupedData
一步的结果,在每个数据分区上应用我的 R 函数。- 每次执行的结果是一个
DataFrame
带有几行的小 R ( dim == (5,5) )。 - 所有结果都通过
gapplyCollect()
执行连接,生成一个小的 RDataFrame
(<100k 数字行)来合并所有结果。
- 每次执行的结果是一个
- 将结果保存在我的DBFS上。
我的问题
在我的开发环境中,我正在对 250 个数据源的分析进行一些并行化的实验,为此我使用了 4 个小型工作人员(VM 类型:Standard_F4s)。
gapplyCollect()
正在将我的 R 函数发送给工作人员,但是......是否可以自定义每个工作人员要执行的最大活动任务数?默认情况下,我看到Databricks允许每个工作人员执行 5 个活动任务。
- 例如:如何允许每个工作人员并行执行 8 个任务?
spark-submit
适合这个任务吗?
我从未使用过spark-submit
,也没有找到在Azure Databricks上使用它的好文档。
我将使用每日计划的作业将此代码投入生产。在工作中,我可以使用例如该
spark-submit
功能来更改--executor-cores
选项吗?如果是,我如何保证我
forecast
在所有工作驱动程序 + 工作人员中都安装了 CRAN 库,因为Azure Databricks不允许我在使用spark-submit
?
azure - Azure 数据块中的 ML Spark 作业
目前我们在 Azure HDInsight 集群(版本:HDI 3.6)中使用 ML pyspark 作业。是否可以在 Azure Databricks 中使用相同的 pyspark 作业而不进行太多更改?
提前致谢!
apache-spark - Databricks Spark CREATE TABLE 永远需要 100 万个小 XML 文件
我有一组100 万个XML 文件,每个文件在 Azure Blob 存储中的大小约为 14KB,安装在 Azure Databricks 中,我正在尝试使用CREATE TABLE
,期望每个文件都有一条记录。
本实验
文件的内容结构如下所示。为了简单和性能实验,除了<ID>
元素之外的所有文件内容都保持相同。
对于解析/反序列化,我使用Databricks的 spark-xml。此刻,我期待有两列HEADER
和的记录RESULT
,这就是我得到的。
问题
该CREATE TABLE
语句运行5.5 小时(在 Spark UI 中具有名称的 SQL 查询sql at SQLDriverLocal.scala:87
),其中只有1 小时用于 Spark 作业(在 Spark UI 的“作业”选项卡中)。
我注意到带有CREATE TABLE
命令的单元格Listing files at "/mnt/blobstorage/records/*.xml"
大部分时间都卡在上面。首先,我认为这是存储连接器中的扩展问题。但是,我可以在~25 秒内对~500K大小相似的 JSON 文件运行命令(XML 与 JSON 的问题?)。
我也知道spark-xml
读取所有文件以推断架构,这可能是瓶颈。为了消除这种可能性,我尝试:
- 预定义模式(仅来自第一个 XML 文件)
- 以纯文本形式摄取而不进行解析(使用
TEXT
提供程序)。在这两种情况下,同样的问题仍然存在。
对于10K记录,相同的语句在20秒内运行,对于200K记录在30 分钟内运行。使用线性缩放(这显然不会发生),100 万条记录将在~33 分钟内完成。
我的 Databricks 集群有 1 个工作节点和 3 个驱动程序节点,每个节点都有256 GB的 RAM 和64 个内核,因此不应该存在缓存瓶颈。我已经在 4 天内多次运行成功地重现了该问题。
问题
我在这里做错了什么?如果在 期间我可以做一些分区/集群CREATE TABLE
,我该怎么做?
azure - 每个管道而不是每个笔记本活动的 Databricks 作业集群
我在不同的 Databricks 笔记本中转换数据(从 ADLS 读取、转换和写入)。我在 DataFactory 管道中连接了这些笔记本:
然后,我从 DataFactory 创建了与我的 Databricks 的连接,并将其添加到我的笔记本活动中。每当触发管道时,我想启动一个 Databricks 集群。总的来说,这一切都很好。但是 Databricks 为每个笔记本活动启动一个作业集群,这需要很长时间,对我来说似乎没有必要。
是否可以在管道开始时启动集群,然后在所有笔记本完成后将其关闭?或者是否有任何论据认为每个活动都有一个工作集群是件好事?
r - 在 Azure Databricks 上安装 rgdal 和 rgeos
我无法在 Databricks 上安装 rgdal 和 rgeos,有什么建议吗?
api - 我们可以在 Azure Databricks 中使用外部 API 吗?
作为 Databricks 的新手,只是探索在 Databricks 中访问第三方 API 的方法。