[U-SQL]][FlexExtractor] 我无法加入。表达式必须都是列
[U-SQL]][FlexExtractor] I Can't join. The expressions must both be columns
我正在使用 Cortana Analytics Suite。目前正在使用 visual studio 数据湖分析项目分析数据湖存储的数据,该项目的文件包含数百列。阅读 u-sql 文档后,我找到了一个 flex 提取器来帮助解决这个问题(百列)。 flex 提取器与一个 table 完美配合。问题从加入 tables 开始,编译时出现此错误:
"Error E_CSC_USER_JOINCOLUMNSEXPECTEDONEACHSIDEOFCONDITION: The expressions map[0] and map_2[0] on each side of the comparison must both be columns."
我有两个这样的提取器:
@data = EXTRACT map SqlMap<Int32,string>
FROM @input
USING new USQLFlexExtractor.FlexExtractor();
@data_2 = EXTRACT map_2 SqlMap<Int32,string>
FROM @input_2
USING new USQLFlexExtractor.FlexExtractor();
@output = SELECT map[0], map[2], map_2[1]
FROM @data AS data
LEFT JOIN @data_2 AS data_2 ON map[0] == map_2[0]
我正在关注这个例子(usql 脚本和 c# 代码在后面):https://github.com/Azure/usql/tree/master/Examples/FlexibleSchemaExtractor/FlexibleSchemaExtractor
我什至尝试过使用 Combine 表达式的不同方法,但我遇到了同样的错误。
知道为什么吗?
此致
U-Sql 不支持连接条件中的派生列。您可以尝试使用这样的中间结果集:
@dataExtract = EXTRACT map SqlMap<Int32,string>
FROM @input
USING new USQLFlexExtractor.FlexExtractor();
@dataExtract_2 = EXTRACT map_2 SqlMap<Int32,string>
FROM @input_2
USING new USQLFlexExtractor.FlexExtractor();
@data =
SELECT map[0] AS map0,
map[2] AS map2
FROM @dataExtract;
@data_2 =
SELECT map[0] AS map2_0,
map[1] AS map2_1
FROM @dataExtract_2;
@output = SELECT map0, map2, map21
FROM @data AS data
LEFT JOIN @data_2 AS data_2 ON map0 == map2_0;
我正在使用 Cortana Analytics Suite。目前正在使用 visual studio 数据湖分析项目分析数据湖存储的数据,该项目的文件包含数百列。阅读 u-sql 文档后,我找到了一个 flex 提取器来帮助解决这个问题(百列)。 flex 提取器与一个 table 完美配合。问题从加入 tables 开始,编译时出现此错误:
"Error E_CSC_USER_JOINCOLUMNSEXPECTEDONEACHSIDEOFCONDITION: The expressions map[0] and map_2[0] on each side of the comparison must both be columns."
我有两个这样的提取器:
@data = EXTRACT map SqlMap<Int32,string>
FROM @input
USING new USQLFlexExtractor.FlexExtractor();
@data_2 = EXTRACT map_2 SqlMap<Int32,string>
FROM @input_2
USING new USQLFlexExtractor.FlexExtractor();
@output = SELECT map[0], map[2], map_2[1]
FROM @data AS data
LEFT JOIN @data_2 AS data_2 ON map[0] == map_2[0]
我正在关注这个例子(usql 脚本和 c# 代码在后面):https://github.com/Azure/usql/tree/master/Examples/FlexibleSchemaExtractor/FlexibleSchemaExtractor
我什至尝试过使用 Combine 表达式的不同方法,但我遇到了同样的错误。
知道为什么吗?
此致
U-Sql 不支持连接条件中的派生列。您可以尝试使用这样的中间结果集:
@dataExtract = EXTRACT map SqlMap<Int32,string>
FROM @input
USING new USQLFlexExtractor.FlexExtractor();
@dataExtract_2 = EXTRACT map_2 SqlMap<Int32,string>
FROM @input_2
USING new USQLFlexExtractor.FlexExtractor();
@data =
SELECT map[0] AS map0,
map[2] AS map2
FROM @dataExtract;
@data_2 =
SELECT map[0] AS map2_0,
map[1] AS map2_1
FROM @dataExtract_2;
@output = SELECT map0, map2, map21
FROM @data AS data
LEFT JOIN @data_2 AS data_2 ON map0 == map2_0;