我在Data lake Analytics中创建了一个数据库。 然后填充数据湖中文件的数据。 当我查询我所做的表时,我有一些成功,但有些奇怪的错误。 (对我来说很奇怪!)
这适用:WHERE [Stamped Serial number] ==" 000074O1" 这不是:WHERE [CTN编号] ==" 000074-1"
错误:
"代码生成期间发生了系统故障。失败 比较数组中的两个元素。"
这两个字段都是字符串,所以我不确定区别是什么。 一个(失败的一个)也是我的索引和放大器的一部分。分配 - 但如果这与我的问题有关,我就输了。
表def,填充和最终查询的所有代码如下。 如果有人能帮助我理解我做错了什么......!? ......将非常感激:)
脚本:创建表
PackageReference
脚本:填充表
CREATE TABLE IF NOT EXISTS Play.RawData
(
[CTN Number] string
,[SeqNo] long
,[UTC Time Stamp for Event] string
,[Biz step Description] string
,[Stamped Serial number] string
,[Container Status] string
< -- more columns -- >,
INDEX
idx_CTN CLUSTERED ([CTN Number],[SeqNo])
DISTRIBUTED BY HASH ([CTN Number],[SeqNo])
);
脚本:测试查询
DECLARE @dir string = "/myDataPath/";
DECLARE @file_set_path string = @dir + "File_{date:yyyy}{date:MM}{date:dd}.DAT";
@results_1 =
EXTRACT
[CTN Number] string
,[UTC Time Stamp for Event] string
,[Biz step Description] string
,[Stamped Serial number] string
,[Container Status] string
< -- more columns -- >,
,date DateTime // virtual file set column
FROM @file_set_path
USING Extractors.Tsv();
INSERT INTO Play.RawData(
[CTN Number],
[SeqNo],
[UTC Time Stamp for Event],
[Biz step Description],
[Stamped Serial number],
[Container Status],
< -- more columns -- >
)
SELECT
[CTN Number],
ROW_NUMBER() OVER(PARTITION BY [CTN Number] ORDER BY [UTC Time Stamp for Event] ASC) ?? -1 AS [SeqNo],
[UTC Time Stamp for Event],
[Biz step Description],
[Stamped Serial number],
[Container Status]
FROM @results_1
WHERE
date >= DateTime.Parse("2013-01-01")
AND
date < DateTime.Parse("2013-02-01");
答案 0 :(得分:1)
对我来说这看起来像个错误。你能给我发一个关于usql(at)microsoft dot com失败工作的链接吗?
由于 迈克尔