ADF 触发的 ADL 作业因语法错误而失败
ADF triggered ADL jobs failing with syntax error
我正在尝试 运行 一项 运行 从 Visual Studio 中成功完成的工作。我想 运行 在我的 ADF 管道中执行此操作,但作业因语法错误而失败。
ERRORID: E_CSC_USER_SYNTAXERROR
SEVERITY: Error
COMPONENT: CSC
SOURCE: USER
MESSAGE:
syntax error. Expected one of: '[' end-of-file ALTER COMBINE CREATE DEPLOY DROP EXTRACT IF INSERT OUTPUT PROCESS REDUCE REFERENCE RESOURCE SELECT TABLE TRUNCATE UPDATE USE USING VIEW identifier quoted-identifier variable ';' '('
DETAILS:
at token [], line 2
near the ###:
**************
DECLARE @outSlice string = "somepath.csv";
### USE DATABASE myDB;
//LOCAL
//DECLARE @root string = @"some local path";
//CLOUD
//DECLARE @root string = "adl://storeuri";
DECLARE @root string = "wasb://container@account/";
//RUN MODE 0
//DECLARE @var2 int = 1;
//DECLARE @var1 int = 1;
DECLARE @path1 string = @root + @"path1/xyz.csv";
编辑:我用 USE DATABASE 语句都试过了,我把它注释掉了,如上所示;### 在两种情况下都出现在完全相同的位置。
EDIT2:为@michael-rys 的每个请求添加连续的代码行
稍后在脚本中,参数 @outSlice 用于输出语句,如
OUTPUT @dataset
TO @outSlice
USING Outputters.Csv();
参数在管道内确定activity。下面的片段:
"type": "DataLakeAnalyticsU-SQL",
"typeProperties": {
"scriptPath": "script.usql",
"scriptLinkedService": "storageXYX",
"degreeOfParallelism": 2,
"priority": 0,
"parameters": {
"outSlice": "$$Text.Format('/Output/{0:yyyy}/{0:MM}/{0:dd}/{0:HH}/somefile.csv',SliceStart)"
}
根据与 Michael 的 off-line 对话,我从脚本文件和 ADF 作业中成功删除了 BOM 运行。如果您使用的是 Visual Studio,请转至文件 -> 高级保存选项。在我的例子中,我不得不选择没有签名的 UTF-8 来删除 BOM。再次感谢@michael-rys!
我正在尝试 运行 一项 运行 从 Visual Studio 中成功完成的工作。我想 运行 在我的 ADF 管道中执行此操作,但作业因语法错误而失败。
ERRORID: E_CSC_USER_SYNTAXERROR
SEVERITY: Error
COMPONENT: CSC
SOURCE: USER
MESSAGE:
syntax error. Expected one of: '[' end-of-file ALTER COMBINE CREATE DEPLOY DROP EXTRACT IF INSERT OUTPUT PROCESS REDUCE REFERENCE RESOURCE SELECT TABLE TRUNCATE UPDATE USE USING VIEW identifier quoted-identifier variable ';' '('
DETAILS:
at token [], line 2
near the ###:
**************
DECLARE @outSlice string = "somepath.csv";
### USE DATABASE myDB;
//LOCAL
//DECLARE @root string = @"some local path";
//CLOUD
//DECLARE @root string = "adl://storeuri";
DECLARE @root string = "wasb://container@account/";
//RUN MODE 0
//DECLARE @var2 int = 1;
//DECLARE @var1 int = 1;
DECLARE @path1 string = @root + @"path1/xyz.csv";
编辑:我用 USE DATABASE 语句都试过了,我把它注释掉了,如上所示;### 在两种情况下都出现在完全相同的位置。 EDIT2:为@michael-rys 的每个请求添加连续的代码行 稍后在脚本中,参数 @outSlice 用于输出语句,如
OUTPUT @dataset
TO @outSlice
USING Outputters.Csv();
参数在管道内确定activity。下面的片段:
"type": "DataLakeAnalyticsU-SQL",
"typeProperties": {
"scriptPath": "script.usql",
"scriptLinkedService": "storageXYX",
"degreeOfParallelism": 2,
"priority": 0,
"parameters": {
"outSlice": "$$Text.Format('/Output/{0:yyyy}/{0:MM}/{0:dd}/{0:HH}/somefile.csv',SliceStart)"
}
根据与 Michael 的 off-line 对话,我从脚本文件和 ADF 作业中成功删除了 BOM 运行。如果您使用的是 Visual Studio,请转至文件 -> 高级保存选项。在我的例子中,我不得不选择没有签名的 UTF-8 来删除 BOM。再次感谢@michael-rys!