问题标签 [u-sql]

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 投票
1 回答
1123 浏览

azure - 顶点故障触发快速作业中止 - 数据提取期间抛出异常

我正在运行数据湖分析作业,在提取过程中出现错误。我在我的脚本中使用 TEXT 提取器和我自己的提取器。我尝试从包含由空格字符分隔的两列的文件中获取数据。当我在本地运行我的脚本时,一切正常,但当我尝试使用我的 DLA 帐户运行脚本时却不行。只有当我尝试从具有数千行(但只有 36 MB 数据)的文件中获取数据时,我才会遇到问题,对于较小的文件,一切也都可以正常工作。我注意到当顶点总数大于提取节点的顶点数时抛出异常。我在使用其他“大”文件(.csv、.tsv)和提取器时遇到了这个问题。有人能告诉我会发生什么吗?

错误信息:

顶点失败触发快速作业中止。顶点失败:SV1_Extract[0][0] 错误:顶点用户代码错误。顶点因快速失败错误而失败

脚本代码:

后面的代码:

部分示例文件:

在工作资源中,我发现了 jobError 消息:

“输入流中的列数异常。”-“描述”:“第 1 行输入记录中的列数异常。\n预期 2 列 - 处理 1 列中的 1 列。”-“分辨率”:“检查输入错误或使用 \"silent\" 开关忽略输入中过大(过小)大小的行。\n请考虑忽略 \"invalid\" 行可能会影响作业结果。

但我再次检查了文件,并没有看到不正确的列数。该错误是否可能是由不正确的文件拆分和分发引起的?我读到可以并行提取大文件。对不起我的英语不好。

0 投票
1 回答
371 浏览

azure-data-lake - 在 U-SQL 中使用 TimeSpan

假设我有一个包含下表的数据库:

我想获得每个活动的持续时间,所以我尝试运行以下代码:

该列duration以正确的“TimeSpan”格式输出(例如“00:00:00.0123”)。

但是,如果我尝试对这些列执行计算,例如 AVG/MAX/等,我会收到一条错误消息,指出 TimeSpan 不能用作列类型。

0 投票
1 回答
1245 浏览

azure-data-lake - U-SQL - 加入 BETWEEN

在 SQL Server 中,我只是一个带有 BETWEEN 语句的 JOIN,将时间范围分解为多个间隔记录。查询看起来类似于

这为 StartDate 和 EndDate 之间的每个数据提供了一条记录。我们已经找到了一种方法来使用返回 SQL 数组和 CROSS APPLY EXPLODE 语句的 UDF 进行爆炸。

我看到的问题是我们正在计算数百万次的日期范围,行集中的每行一次。这似乎是非常低效的,并且确实是处理时消耗时间的主要来源。

我已经创建了一种生成上面使用的日期表的方法,并且想试验性能,但是 U-SQL 连接不支持 BETWEEN 语句。

应该使用什么方法?从文档中不清楚 CROSS APPLY 是否可以处理这个问题。

如果间隔在两个日期之间,我尝试在后面的代码中使用 UDF 返回 true 或 false,但这只会导致错误 JOIN ON 子句只能在列上而不是 UDF

0 投票
2 回答
1314 浏览

azure-data-lake - 调试 u-sql 作业

我想知道是否有任何提示和技巧可以在数据湖分析工作中发现错误。错误消息似乎大部分时间都不是很详细。

尝试从 CSV 文件中提取时,我经常收到这样的错误

顶点失败触发快速作业中止。顶点失败:SV1_Extract[0] with >error:顶点用户代码错误。

顶点因快速失败错误而失败

尝试将列转换为指定类型时似乎会​​发生这些错误。

我发现的技术是将所有列提取为字符串,然后执行 SELECT 尝试将列转换为预期类型。逐列执行这些操作可以帮助找到错误的特定列。

是否也可以使用 TryParse 之类的东西在解析错误的情况下返回 null 或默认值,而不是整个作业失败?

谢谢

0 投票
1 回答
571 浏览

azure-data-lake - 优化 Azure Data Lake 中的最大并行度

指导方针是什么,或者我们在哪里可以找到设计系统以实现最佳并行性的指导方针。我知道数据是在各个节点上拆分的,并为此进行了优化。

我在文件中的数据目前有多个客户、站点、产品和用户。我需要按客户、站点、产品进行汇总,这意味着可以在各个节点中轻松计算该数据的子集,并在处理结束时将其带回单个节点进行输出。

但是,我没有在作业图中看到那种级别的并行性。它正在显示 MDOP,但不是以一种看起来最佳的方式。我有 4 种不同的计算,它们是在客户、站点、产品上独立完成的。它与 4 个计算并行,但在整个数据集上进行。实际上,它应该能够将其扇出,例如 10 个节点每个有 1 个客户,然后每个节点都可以将其计算扇出到另外 4 个节点。(此处仅注意数字,例如,数据规模要大得多)。

如何优化文件布局或 U-SQL 逻辑以鼓励更多 MDOP?

0 投票
1 回答
922 浏览

azure-data-lake - ADLA/U-SQL 错误:顶点用户代码错误

我只有一个简单的 U-SQL,它使用提取 csv Extractors.Csv(encoding:Encoding.[Unicode]);并将其输出到湖存储表中。文件大小很小,大约 600MB,是 unicode 类型。行数700K+

这些是列:

当我将这份工作提交给我的本地人时,它工作得很好,没有任何问题。将其提交给 ADLA 后,我收到以下错误:

任何帮助表示赞赏!

0 投票
1 回答
763 浏览

c# - 查询非常大的 xml 文件

我有一个 GB 规模的合并非常大的 xml 文件。我正在使用以下代码和 xpath 查询来读取和处理数据。

但是,它仅适用于 MB 规模的较小文件。它在本地工作正常,但对 ADLA 失败。我还需要使用命名空间管理器。我如何缩放它以便我可以处理更大的文件。在提交带有大文件的作业时,我总是在没有任何信息的情况下收到此错误。

顶点失败错误

0 投票
3 回答
760 浏览

azure - 自定义并行提取器 - U-SQL

我尝试创建一个自定义并行提取器,但我不知道如何正确执行。我有一个大文件(超过 250 MB),其中每行的数据存储在 4 行中。一个文件行存储一列的数据。这是否可以为大文件创建工作并行提取器?恐怕一行的数据,在文件拆分后会有不同的程度。

例子:

对不起我的英语不好。

0 投票
1 回答
92 浏览

c# - XML Outputter 添加额外的非 ascii 字符

我正在使用以下 XML 输出器基于 CSV 数据编写 xml 文件。

它工作得非常好,工作完全没有任何错误,但是,在预览和下载文件时,还有另一个额外的字符导致该 xml 文件被读取失败。我尝试使用片段级别和自动作为一致性级别。

我获得的样本输出是

在此处输入图像描述

并且 2 个标签之间的额外字符在读取文件时导致问题。

0 投票
2 回答
184 浏览

azure - 如何在不拆分的情况下强制在一个节点上处理文件?

是否可以在不拆分的情况下强制在一个节点上处理文件?我尝试使用设置为 true 的 AtomicFileProcessing,但它不起作用。