4

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();

パラメータは、パイプライン アクティビティ内で決定されます。以下のスニペット:

       "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)"
            }
4

1 に答える 1

2

Michael とのオフラインでの会話によると、スクリプト ファイルから BOM を削除したところ、ADF ジョブは正常に実行されました。Visual Studio を使用している場合は、[ファイル] -> [高度な保存オプション] に移動します。私の場合、BOM を削除するには、署名なしで UTF-8 を選択する必要がありました。ありがとう@michael-rys!

于 2016-01-19T22:10:40.233 に答える