gpt4 book ai didi

azure - 从 Azure 用户定义的输出器读取模板

转载 作者:行者123 更新时间:2023-12-03 04:03:01 25 4
gpt4 key购买 nike

我对 Azure Data Lake 还很陌生。我想创建用户定义的输出器,它使用文件模板来生成输出文件。问题是在输出器中存储和检索模板文件的最佳方法是什么?最简单、最容易的方法是将模板文件嵌入到U-SQL程序集中并从程序集资源中读取它。但这不是灵活的解决方案 - 如果需要更改模板,则需要重新部署输出器 dll。正确的方法似乎是将模板存储在 Azure Data Lake Storage 中,但我不确定如何从输出器的 C# 代码中读取模板。

最佳答案

我认为不可能在用户定义的输出器中引用外部文件。您基本上是逐行处理并输出到流。

用户定义的输出器具有编程模型,我不认为它支持访问程序集外部的某些内容。 User Defined Outputter Programming Model

我的建议是:为您想要支持的不同输出格式定义 bool 标志,然后相应地处理行。这样,您就可以使用单个输出器来支持多种输出格式。

已内置输出器 Outputters.Text()通过更改分隔符支持多种格式。你也可以想出类似的东西。

OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text.txt" USING Outputters.Text();
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_outputHeader.txt" USING Outputters.Text(outputHeader: true);
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_charFormat.txt" USING Outputters.Text(charFormat: "string");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_delimiter.txt" USING Outputters.Text(delimiter: '|');
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_dateTimeFormat.txt" USING Outputters.Text(dateTimeFormat: "D");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_encoding.txt" USING Outputters.Text(encoding: Encoding.UTF32);
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_escapeCharacter.txt" USING Outputters.Text(escapeCharacter: ':');
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_nullEscape.txt" USING Outputters.Text(nullEscape: "null");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_quoting.txt" USING Outputters.Text(quoting: false);
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_rowDelimiter.txt" USING Outputters.Text(rowDelimiter: "\u0003");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_charFormat_nullEscape_escapeCharacter.txt" USING Outputters.Text(charFormat: "string", nullEscape:"NULL", escapeCharacter:'#');
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_charFormat_encoding.txt" USING Outputters.Text(charFormat: "string", encoding:Encoding.Unicode);

当您逐行处理时,理想情况下您不需要模板文件。您可以处理程序集中的逻辑。但是,如果您需要模板文件,可以将该文件保留在资源文件中并与程序集一起部署。您还可以根据需要定义配置文件并与程序集一起部署。

关于azure - 从 Azure 用户定义的输出器读取模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61357400/

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