2017-05-29 51 views
2

是否可以像下面的u-sql代码一样获取文件“完整路径”,就像文件名列一样?如何在U-SQL查询中获取文件的完整路径

DECLARE @in = "D:/Sample/Data/{FileName}"; 

@drivers = 
    EXTRACT id string, 
      first_name string, 
      last_name string, 
      address string, 
      FileName string 
    FROM @in 
    USING USING Extractors.Csv(); 

OUTPUT @drivers 
TO "/ReferenceGuide/DML/QSE/Extract/Drivers.txt" 
USING Outputters.Csv(); 

从上面的u-sql查询我能够得到文件名,但我想文件的完整路径也。像“D:/ Sample/Data”

回答

3

那么你已经在脚本的顶部有一个变量的输入路径,所以只需将其添加到输出数据集。就像这样:

DECLARE @in = "D:/Sample/Data/{FileName}"; 

@drivers = 
    EXTRACT id string, 
      first_name string, 
      last_name string, 
      address string, 
      FileName string 
    FROM @in 
    USING USING Extractors.Csv(); 


@driverswithpath = 
    SELECT 
     *, 
     @in AS 'InputPath' 
    FROM 
     @drivers; 

OUTPUT @driverswithpath 
TO "/ReferenceGuide/DML/QSE/Extract/Drivers.txt" 
USING Outputters.Csv(); 
+0

它的工作。谢谢。 :) –

1

您也可以使用在U型SQL字符串.NET方法,你可以使用Replace方法来重建整个文件路径,这样的事情:

DECLARE @in string = "input/{FileName}"; 

@drivers = 
    EXTRACT id string, 
      first_name string, 
      last_name string, 
      address string, 
      FileName string 
    FROM @in 
    USING Extractors.Csv(); 


@driverswithpath = 
    SELECT 
     *, 
     @in.Replace("{FileName}", FileName) AS InputPath 
    FROM 
     @drivers; 

OUTPUT @driverswithpath TO "/output/output.csv" 
USING Outputters.Csv(); 
相关问题