首页 文章

配置输入和输出文件夹位置的文件

提问于
浏览
3

我有多个U-SQL脚本,我在每个U-SQL脚本的顶部使用filename变量 . 有没有办法我们可以将输入和输出文件夹定义到任何配置文件并读取该变量,常量或任何与 ExtractOUTPUT 一起使用它们的东西

@tab1 = 
    EXTRACT f1 string,
            f2 string
    FROM **<path from config file>**
    USING Extractors.Csv(skipFirstNRows:1);

2 回答

  • 0

    目前,U-SQL支持基URI的概念,但目前硬编码为默认的ADLS帐户的根 . 您可以在http://aka.ms/adlfeedback处将请求设置为将基URI设置为其他值,或者使用一些脚本参数化来自行构建 . 由于脚本可以有许多输入或输出位置,因此将其作为系统配置选项会增加太多的复杂性 .

    您可以按如下方式参数化U-SQL脚本:

    // if you want to parameterize the whole path
    DECLARE EXTERNAL @in = "/default/input.csv";
    // if you have standard output path that you want to optionally overwrite and a user specified output file
    DECLARE EXTERNAL @outdir = "/defaultoutput";
    DECLARE EXTERNAL @outfile = "output.csv";
    DECLARE @out = @outdir + "/" + @outfile;
    
    @data = EXTRACT .... FROM @in USING ....;
    ...
    OUTPUT @res TO @out USING ...;
    

    以上内容也可以包装成一个程序并存储在帐户中 .

    注意:我们正在开发一种功能,可以在没有U-SQL语句的情况下对声明和引用进行分组,并将它们存储在元数据中以供将来重用 . 这将有助于您的方案减少“锅炉板” .

    提交时,您可以在前面添加实际路径

    DECLARE @in = "/actual/input.csv";
    DECLARE @outfile = "myoutput.csv";
    
    //... rest of script or invocation of Procedure.
    

    wBob回复中的ADF示例正在为您做前置 . 其他工具和SDK目前正在定义他们的参数传递模型(除了你自己做前置) .

    这是否满足您的需求?

  • 1

    可以使用Azure数据工厂按照herehere运行参数化的U-SQL查询 . 输入和输出文件夹参数化的管道示例启动:

    {
        "name": "ComputeEventsByRegionPipeline",
        "properties": {
            "description": "This is a pipeline to compute events for en-gb locale and date less than 2012/02/19.",
            "activities": [
                {
                    "type": "DataLakeAnalyticsU-SQL",
                    "typeProperties": {
                        "scriptPath": "adlascripts\\SearchLogProcessing.txt",
                        "scriptLinkedService": "StorageLinkedService",
                        "degreeOfParallelism": 3,
                        "priority": 100,
                        "parameters": {
                            "in": "/input/SearchLog.tsv",
                            "out": "/output/Result.tsv"
                        }
                    },
    ...
    

    您可以在部署ADF作业时读取配置文件,例如使用Powershell .

相关问题