2016-06-04 1 views
2

J'essaie d'extraire des données à partir d'un fichier CSV utilisant l'instruction suivante EXTRACT U-SQL:Comment ignorer les lignes invalides dans U-SQL EXTRACT qui ne correspondent pas au schéma?

EXTRACT SessionId string, 
     Latitude double, 
     Longitude double, 
     Timestamp int 
FROM "wasb://[email protected]/" 
USING Extractors.Csv(); 

Mais mon travail ne parvient pas à mi-chemin parce qu'il ya une ligne qui ne correspond pas à ce schéma (commun dans les grands ensembles de données) parce qu'il a le mauvais nombre de colonnes. Comment puis-je éviter que cela échoue tout l'extrait?

Répondre

3

Utilisez le slient: true paramètre à Extractors.Csv() ala:

EXTRACT SessionId string, 
     Latitude double, 
     Longitude double, 
     Timestamp int 
FROM "wasb://[email protected]/" 
USING Extractors.Csv(silent:true); 
5

Notez que le drapeau en mode silencieux, procédez comme suit:

  1. Ignore les lignes qui ont la colonne Mismatched compte
  2. remplacez les valeurs non valides par nul si le type de colonne est nullable.

Il erreur encore si:

  1. la valeur ne peut pas être jeté au type attendu non annulable.
  2. il existe un caractère non valide pour le codage spécifié.
+0

Existe-t-il un mécanisme que vous pouvez utiliser pour ignorer les lignes avec les conditions "erreur fixe" ci-dessus? – outside2344

+0

Vous devrez écrire votre propre extracteur personnalisé. Si vous avez des scénarios spécifiques, n'hésitez pas à ajouter également une demande de fonctionnalité sur les extracteurs intégrés à l'adresse http://aka.ms/adlfeedback. –