我有一个从 Azure blob 复制到 Azure 数据湖存储的 CSV 文件。管道建立成功并复制文件。
我正在尝试从这里编写 USQL 示例脚本:
首页 -> datalakeanalysis1->示例脚本-> 新作业
它向我展示了一个默认脚本。
//Define schema of file, must map all columns
@searchlog =
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int,
Urls string,
ClickedUrls string
FROM @"/Samples/Data/SearchLog.tsv"
USING Extractors.Tsv();
OUTPUT @searchlog
TO @"/Samples/Output/SearchLog_output.tsv"
USING Outputters.Tsv();
注意:我在数据湖存储中的文件在这里:
首页->dls1->数据浏览器->rdl1
如何在脚本中给出 CSV 文件的路径(我的 CSV 文件存储在 Data Lake Store 中)?
此外,我想将目标文件(输出)保留在数据湖存储中。
如何修改脚本以引用数据湖存储路径?
我已更改脚本如下:
//Define schema of file, must map all columns
@searchlog =
EXTRACT ID1 int,
ID2 int,
Date DateTime,
Rs string,
Rs1 string,
Number string,
Direction string,
ID3 int
FROM @"adl://rdl1.azuredatalakestore.net/blob1/vehicle1_09142014_JR.csv"
USING Extractors.Csv();
OUTPUT @searchlog
TO @"adl://rdl1.azuredatalakestore.net/blob1/vehicle1_09142014_JR1.csv"
USING Outputters.Csv();
但是,我的工作因附加错误而失败:
此外,我还附上了我想在工作中使用的 CSV 文件。
CSV 文件有问题吗?或者在我的脚本中?
我相信,在从文件中提取数据时,您可以传递一些附加参数来忽略标题行
@searchlog =
EXTRACT ID1 int,
ID2 int,
Date DateTime,
Rs string,
Rs1 string,
Number string,
Direction string,
ID3 int
FROM @"adl://rdl1.azuredatalakestore.net/blob1/vehicle1_09142014_JR.csv"
USING Extractors.Csv(skipFirstNRows:1);
在所有情况下都可能或不可能修改输入文件,特别是如果输入文件被您无法控制的利益相关者删除。
我按照你的步骤重现了你的问题。
我的样本数据:
ID1,ID2,Date,Rs,Rs1,Number,Direction,ID3
1,1,9/14/2014 0:00,46.81006,-92.08174,51,S,1
1,2,9/14/2014 0:00,46.81006,-92.08174,13,NE,1
1,3,9/14/2014 0:00,46.81006,-92.08174,48,NE,1
1,4,9/14/2014 0:00,46.81006,-92.08174,30,W,1
根据错误日志,我发现它无法解析标题行。因此,我删除了标题行,一切正常。
修改数据:
1,1,9/14/2014 0:00,46.81006,-92.08174,51,S,1
1,2,9/14/2014 0:00,46.81006,-92.08174,13,NE,1
1,3,9/14/2014 0:00,46.81006,-92.08174,48,NE,1
1,4,9/14/2014 0:00,46.81006,-92.08174,30,W,1
Usql 脚本:
//Define schema of file, must map all columns
@searchlog =
EXTRACT ID1 int,
ID2 int,
Date DateTime,
Rs string,
Rs1 string,
Number string,
Direction string,
ID3 int
FROM @"/test/data.csv"
USING Extractors.Csv();
OUTPUT @searchlog
TO @"/testOutput/dataOutput.csv"
USING Outputters.Csv();
输出:
希望对您有帮助。