【问题标题】:U-sql - Error on defining input file patternU-sql - 定义输入文件模式时出错
【发布时间】:2019-06-19 14:10:16
【问题描述】:

在 Azure 数据工厂管道调用的 U-SQL 脚本中,我使用以下语句为我的过程定义输入文件: DECLARE @inputpattern_csv string = "/FOLDER/" + @year.ToString() + @month.ToString().PadLeft(2, '0') + "{daynum:}_ex1.csv";

该程序一直有效,但现在当我运行它时,它返回此错误: E_CSC_USER_INVALIDFILESETPATTERN: Invalid file set pattern 'daynum:' in 'adl://**************.azuredatalakestore.net/FOLDER/201904{daynum:}_ex1.csv'

Azure 数据工厂的错误输出如下:

{
"errorCode": "2703",
"message": "Error Id: E_CSC_USER_INVALIDFILESETPATTERN, Error Message: Invalid file set pattern 'daynum:' in 'adl://**************.azuredatalakestore.net/FOLDER/201904{daynum:}_ex1.csv'.. ",
"failureType": "UserError",
"target": "U-sql Activity"
}

是更新到 Azure Data Lake Storage Gen2 的结果吗? 我该如何解决?

谢谢

【问题讨论】:

  • 您的意思是:“是更新到 Azure Data Lake Storage Gen2 的结果吗?”您是指从 Gen1 迁移到 Gen2,还是指产品更新?
  • 如果不指定格式,daynum 后面不需要冒号。

标签: azure azure-data-lake u-sql


【解决方案1】:

您似乎是在指定日期范围内定义列表文件,对吧? 如果正确,下面的代码可能会对您有所帮助。

可以参考MS的文档here

DECLARE @File_Set_Pattern = "/sample/{Virtual_Col_Name:yyyy}/{Virtual_Col_Name:MM}/{Virtual_Col_Name:dd}.csv; 

DECLARE @From_Date = new DateTime(2019,01,01); 
DECLARE @To_Date = new DateTime(2019,01,28); 

@N = EXTRACT 
        Column_Names string, //define list columns and datatype here
        Virtual_Col_Name DateTime from @File_Set_Pattern //this is virtual column name
USING Extractors.Csv(); //replace by extractor you are using

OUTPUT( SELECT * FROM @N WHERE Virtual_Col_Name BETWEEN @From_Date AND @To_Date ) TO "/sample/outputfile.csv USING Outputters.Csv;

【讨论】:

  • 很遗憾,我没有指定日期范围!我想读取文件夹中包含的所有文件以及每次运行程序时必须能够输入的日期参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 2015-11-08
  • 1970-01-01
相关资源
最近更新 更多