来自C#的Azure Data Lake Analytics的CreateJob

时间:2017-07-07 21:56:53

标签: c# azure azure-data-lake

我正在尝试使用C#api和DataLakeAnalyticsJobManagementClient创建一个Job,并且每次尝试都失败,并显示错误消息:"无效的作业定义。" 。关于什么是无效的,没有其他有用的信息。这个工作是一个U-SQL工作,我开始在天蓝色的门户网站创建它,并且运行正常并正确运行,没有错误。

我正在使用门户网站测试使用的相同信息构建JobInformation和JobProperties,我知道U-SQL语句是有效的。

JobProperties props = new JobProperties(File.ReadAllText(@"C:\myusqlscript.usql"));
var myId = Guid.NewGuid();
JobInformation jobNfo = new JobInformation("mysamplejob", JobType.USql, props,myId) { DegreeOfParallelism = 1, Priority = 1000};

jobNfo.Validate();  //<--this doesn't throw an exception either

var jobs = await _adlaJobClient.Job.ListAsync("myanalyticsaccountname");
var adlaJob = await _adlaJobClient.Job.CreateAsync("myanalyticsaccountname", myId, jobNfo);

我尝试过构造函数和属性设置的各种组合,包括仅使用某些属性的默认值,我得到相同的结果:&#34;无效的作业定义。&#34; 有没有其他信息表明缺少信息或格式问题或类似的事情。

那里的任何人都使用C#API创建了Azure Data Lake Analytics作业?

1 个答案:

答案 0 :(得分:1)

  

那里的任何人都使用C#API创建了Azure Data Lake Analytics作业?

您需要使用USqlJobProperties而不是JobProperties。

var props = new USqlJobProperties(File.ReadAllText(@"C:\myusqlscript.usql"));

Data Lake analytics get started .NET SDK的官方文件不可用。但我们也可以从本文档的histories获得一些有用的示例代码。

public static Guid SubmitJobByPath(string scriptPath, string jobName)
{
    var script = File.ReadAllText(scriptPath);
    var jobId = Guid.NewGuid();
    var properties = new USqlJobProperties(script);
    var parameters = new JobInformation(jobName, JobType.USql, properties, priority: 1, degreeOfParallelism: 1, jobId: jobId);
    var jobInfo = _adlaJobClient.Job.Create(_adlaAccountName, jobId, parameters);
    return jobId;
}