2017-07-07 102 views
1

我正在尝试使用C#API和DataLakeAnalyticsJobManagementClient创建一个作业,并且在尝试使用错误消息的每次尝试中都失败:“作业定义无效”。。关于什么是无效的,没有其他有用的信息。这项工作是一个U-SQL工作,我开始在azure门户创建它,并且工作得很好,正确无误地运行。CreateJob for C#的Azure数据湖分析#

我使用与使用门户网站测试相同的信息构建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); 

我试图构造函数和属性设置只使用默认设置的一些属性,我也得到相同的结果,包括各种组合:“无效作业定义。”没有其他信息会显示缺少的信息或格式问题或类似的东西。

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

回答

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; 
} 
+0

宾果!那就是诀窍!只是将JobProperties更改为USqlJobProperties,并且工作正常。谢谢。 –