问题标签 [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.
azure - 顶点故障触发快速作业中止 - 数据提取期间抛出异常
我正在运行数据湖分析作业,在提取过程中出现错误。我在我的脚本中使用 TEXT 提取器和我自己的提取器。我尝试从包含由空格字符分隔的两列的文件中获取数据。当我在本地运行我的脚本时,一切正常,但当我尝试使用我的 DLA 帐户运行脚本时却不行。只有当我尝试从具有数千行(但只有 36 MB 数据)的文件中获取数据时,我才会遇到问题,对于较小的文件,一切也都可以正常工作。我注意到当顶点总数大于提取节点的顶点数时抛出异常。我在使用其他“大”文件(.csv、.tsv)和提取器时遇到了这个问题。有人能告诉我会发生什么吗?
错误信息:
顶点失败触发快速作业中止。顶点失败:SV1_Extract[0][0] 错误:顶点用户代码错误。顶点因快速失败错误而失败
脚本代码:
后面的代码:
部分示例文件:
在工作资源中,我发现了 jobError 消息:
“输入流中的列数异常。”-“描述”:“第 1 行输入记录中的列数异常。\n预期 2 列 - 处理 1 列中的 1 列。”-“分辨率”:“检查输入错误或使用 \"silent\" 开关忽略输入中过大(过小)大小的行。\n请考虑忽略 \"invalid\" 行可能会影响作业结果。
但我再次检查了文件,并没有看到不正确的列数。该错误是否可能是由不正确的文件拆分和分发引起的?我读到可以并行提取大文件。对不起我的英语不好。
azure-data-lake - 在 U-SQL 中使用 TimeSpan
假设我有一个包含下表的数据库:
我想获得每个活动的持续时间,所以我尝试运行以下代码:
该列duration
以正确的“TimeSpan”格式输出(例如“00:00:00.0123”)。
但是,如果我尝试对这些列执行计算,例如 AVG/MAX/等,我会收到一条错误消息,指出 TimeSpan 不能用作列类型。
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
azure-data-lake - 调试 u-sql 作业
我想知道是否有任何提示和技巧可以在数据湖分析工作中发现错误。错误消息似乎大部分时间都不是很详细。
尝试从 CSV 文件中提取时,我经常收到这样的错误
顶点失败触发快速作业中止。顶点失败:SV1_Extract[0] with >error:顶点用户代码错误。
顶点因快速失败错误而失败
尝试将列转换为指定类型时似乎会发生这些错误。
我发现的技术是将所有列提取为字符串,然后执行 SELECT 尝试将列转换为预期类型。逐列执行这些操作可以帮助找到错误的特定列。
是否也可以使用 TryParse 之类的东西在解析错误的情况下返回 null 或默认值,而不是整个作业失败?
谢谢
azure-data-lake - 优化 Azure Data Lake 中的最大并行度
指导方针是什么,或者我们在哪里可以找到设计系统以实现最佳并行性的指导方针。我知道数据是在各个节点上拆分的,并为此进行了优化。
我在文件中的数据目前有多个客户、站点、产品和用户。我需要按客户、站点、产品进行汇总,这意味着可以在各个节点中轻松计算该数据的子集,并在处理结束时将其带回单个节点进行输出。
但是,我没有在作业图中看到那种级别的并行性。它正在显示 MDOP,但不是以一种看起来最佳的方式。我有 4 种不同的计算,它们是在客户、站点、产品上独立完成的。它与 4 个计算并行,但在整个数据集上进行。实际上,它应该能够将其扇出,例如 10 个节点每个有 1 个客户,然后每个节点都可以将其计算扇出到另外 4 个节点。(此处仅注意数字,例如,数据规模要大得多)。
如何优化文件布局或 U-SQL 逻辑以鼓励更多 MDOP?
azure-data-lake - ADLA/U-SQL 错误:顶点用户代码错误
我只有一个简单的 U-SQL,它使用提取 csv Extractors.Csv(encoding:Encoding.[Unicode]);
并将其输出到湖存储表中。文件大小很小,大约 600MB,是 unicode 类型。行数700K+
这些是列:
当我将这份工作提交给我的本地人时,它工作得很好,没有任何问题。将其提交给 ADLA 后,我收到以下错误:
任何帮助表示赞赏!
c# - 查询非常大的 xml 文件
我有一个 GB 规模的合并非常大的 xml 文件。我正在使用以下代码和 xpath 查询来读取和处理数据。
但是,它仅适用于 MB 规模的较小文件。它在本地工作正常,但对 ADLA 失败。我还需要使用命名空间管理器。我如何缩放它以便我可以处理更大的文件。在提交带有大文件的作业时,我总是在没有任何信息的情况下收到此错误。
顶点失败错误
azure - 自定义并行提取器 - U-SQL
我尝试创建一个自定义并行提取器,但我不知道如何正确执行。我有一个大文件(超过 250 MB),其中每行的数据存储在 4 行中。一个文件行存储一列的数据。这是否可以为大文件创建工作并行提取器?恐怕一行的数据,在文件拆分后会有不同的程度。
例子:
对不起我的英语不好。
azure - 如何在不拆分的情况下强制在一个节点上处理文件?
是否可以在不拆分的情况下强制在一个节点上处理文件?我尝试使用设置为 true 的 AtomicFileProcessing,但它不起作用。