【发布时间】:2021-10-28 16:51:23
【问题描述】:
我是 U-SQL 的新手,我正在尝试从一个文件夹中读取多个 .dsv 文件,并将输出作为 .dsv 文件写入动态文件夹/子文件夹中。到目前为止,我已成功读取多个 .dsv 文件,并且能够将文件写入单个位置(预定义位置),但无法将 .dsv 文件写入多个文件夹/子文件夹。文件夹和子文件夹是根据文件名定义的。举个例子, 如果文件名为ABC_20200421@015814.dsv,应该是从.dsv文件中读取数据并写入文件夹系统:test/ABC/2020/04/21/File_Data.dsv
我目前的代码是:
DECLARE @ImportFile string = "*.dsv"; -- To read all the .dsv files and move them to folder locations
DECLARE @Code String = @ImportFile.Substring(0, 3);
DECLARE @CommanName String = @ImportFile.Substring(4, 14); File_Contents
DECLARE @Year String = @ImportFile.Substring(18, 4);
DECLARE @Month String = @ImportFile.Substring(22, 2);
DECLARE @File_Date String = @ImportFile.Substring(24, 2);
@result=
SELECT col1,col2,col3
FROM Table1
//Writing to dsv file:
OUTPUT @result
TO "test/"+@Code+"/"+@Year+"/"+@Month+"/"+@File_Date+"/File_Data.dsv"
USING Outputters.Text(delimiter : '|', quoting: false);
运行代码时出现错误:
E_CSC_USER_EXPRESSIONNOTCONSTANTFOLDABLE:表达式不能被常量折叠。
详情:
在标记 '"/test/"' 处,靠近 ###:
输出@结果 到 ### "/test/"+@Code+"/"+@Year+"/"+@Month+"/"+@File_Date+"/STAY_REVENUES.dsv" 使用 Outputters.Text(分隔符:'|',引用:false)
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您使用哪个服务来运行 U-SQL 脚本?
-
我正在使用数据湖分析第一代
标签: c# .net azure azure-data-lake u-sql