gpt4 book ai didi

azure - U-SQL 错误 - 更改标识符以使用至少一个小写字母

转载 作者:行者123 更新时间:2023-12-02 06:30:54 28 4
gpt4 key购买 nike

我对 U-SQL 相当陌生,并尝试在 Azure Data Lake Analytics 中运行 U-SQL 脚本,以使用 Parquet 提取器功能处理 Parquet 文件。我收到以下错误,但找不到解决该错误的方法。错误 - 更改标识符以使用至少一个小写字母。如果不可能,则转义该标识符(例如:“[ACTIVITY]”),或将其嵌入到 CSHARP() block 中(例如 CSHARP(ACTIVITY))。

不幸的是,Parquet 文件中生成的所有不同字段都是大写的,我不想转义这些标识符。我尝试过是否可以用 CSHARP block 包装标识符,但它也失败(E_CSC_USER_RESERVEDKEYWORDASIDENTIFIER:保留关键字 CSHARP 用作标识符。)我是否可以提取 Parquet 文件?感谢您的帮助!代码片段:

SET @@FeaturePreviews = "EnableParquetUdos:on";

@var1 = 提取事件字符串, AUTHOR_NAME 字符串, 隶属关系字符串

FROM "adl://xxx.azuredatalakestore.net/Abstracts/FY2018_028"
USING Extractors.Parquet();

@var2 = 选择 * 来自@var1 按事件 ASC 排序 获取 5 行;
输出@var2
至“adl://xxx.azuredatalakestore.net/Results/AbstractsResults.csv”使用 Outputters.Csv();

最佳答案

根据您的描述,您想说的是

EXTRACT ALLCAPSNAME int FROM "/data.parquet" USING Extractors.Parquet();

在 U-SQL 中,我们保留所有大写标识符,以便将来可以添加新关键字,而不会导致旧脚本失效。

要解决此问题,您只需像在任何其他 SQL 方言中一样引用名称(转义它)即可:

EXTRACT [ALLCAPSNAME] int FROM "/data.parquet" USING Extractors.Parquet();

请注意,这不会更改字段的名称。这只是处理该字段的语法方式。

另请注意,在大多数 SQL 社区中,始终引用标识符以避免保留关键字冲突被认为是最佳实践。

如果 Parquet 文件中的所有字段都是大写,您将必须全部引用它们...在将来的更新中,您将能够对 Parquet(和 Orc)文件说 EXTRACT * FROM ...,但您仍然会当您明确引用这些列时,需要引用它们。

关于azure - U-SQL 错误 - 更改标识符以使用至少一个小写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51090984/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com