2017-07-07 2 views
1

J'essaye de créer un Job en utilisant l'API C# et le DataLakeAnalyticsJobManagementClient et j'ai échoué à chaque tentative avec le message d'erreur: "Définition de travail invalide".. Il n'y a pas d'autres informations utiles sur ce qui est invalide à ce sujet. Le travail est un travail U-SQL et j'ai commencé à le créer dans le portail azure et cela a très bien fonctionné et a fonctionné correctement sans erreurs.CreateJob pour Azure Data Lake Analytics à partir du C#

Je crée JobInformation et JobProperties en utilisant les mêmes informations que le test de portail utilisé et je sais que les instructions U-SQL sont valides.

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

J'ai essayé différentes combinaisons de constructeurs et paramètres de propriété, y compris en utilisant simplement les valeurs par défaut pour certaines des propriétés et j'obtenir le même résultat: « définition du travail non valide. » Il n'y a aucune autre information qui indiquerait des informations manquantes ou des problèmes de mise en forme ou quelque chose comme ça.

Tous les utilisateurs ont créé des travaux Azure Data Lake Analytics avec l'API C#?

Répondre

1

Tous les utilisateurs ont créé des travaux Azure Data Lake Analytics avec l'API C#?

Vous devez utiliser USqlJobProperties au lieu de JobProperties.

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

Le document officiel de Data Lake analytics get started .NET SDK n'est plus disponible. Mais nous pouvons également obtenir un exemple de code utile à partir du histories de ce document.

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

Bingo! ça a fait l'affaire! juste changé JobProperties à USqlJobProperties et cela a fonctionné. Merci. –