Ich habe ein seltsames Problem mit einem U-SQL-Job, der gezippte Dateien verarbeiten. Wenn ich die U-SQL in einer normalen CSV-Datei ausführen, funktioniert es gut. Aber wenn ich die Datei gzip es mehr doenst arbeiten (eine E_RUNTIME_USER_EXTRACT_ENCODING_ERROR Erzeugung: Kodierungsfehler aufgetreten nach der Bearbeitung 0 Eintragung (en) im Scheitelpunkt‘Eingang Split.)U-SQL-Problem mit Gzip und virtuelle Spalte
So ist der Code, der
funktioniert, istDECLARE @path string = "output/{ids}/{*}.csv";
@data =
EXTRACT
a string,
b string,
c string,
d string,
ids string
FROM @path
USING
Extractors.Csv(skipFirstNRows:1, silent: true);
@output =
SELECT *
FROM @data
WHERE ids == "test";
OUTPUT @output
TO "output/res.csv"
USING Outputters.Csv(quoting : false, outputHeader: true);
Dieser Code funktioniert nicht (gz Version der Datei)
DECLARE @path string = "output/{ids}/{*}.csv.gz";
@data =
EXTRACT
a string,
b string,
c string,
d string,
ids string
FROM @path
USING
Extractors.Csv(skipFirstNRows:1, silent: true);
@output =
SELECT *
FROM @data
WHERE ids == "test";
OUTPUT @output
TO "output/res.csv"
USING Outputters.Csv(quoting : false, outputHeader: true);
Wenn ich remo ve das virtuelle Spalte „ids“ es funktioniert für die gz Version
DECLARE @path string = "output/test/{*}.csv.gz";
@data =
EXTRACT
a string,
b string,
c string,
d string
FROM @path
USING
Extractors.Csv(skipFirstNRows:1, silent: true);
@output =
SELECT *
FROM @data;
OUTPUT @output
TO "output/res.csv"
USING Outputters.Csv(quoting : false, outputHeader: true);
Beigefügt sind die beiden Dateien die ich benutze. Hat jemand eine Ahnung was los ist? Wenn ich die virtuellen Spalten-IDs entferne, funktioniert es für beide? im Data See Lagerung
ich nur diesen Fehler, wenn ich gegen die Datei ausführen. Wenn ich lokal gegen die Dateien arbeite, funktioniert es gut.
Die detaillierten Fehler I erhalten sind "internalDiagnostics": "" - "innerError": { "diagnosticCode": 195.887.128 - "Schwere": "Error" - "Komponente": "runtime" - "Quelle":“ Benutzer "-" errorId ":" E_RUNTIME_USER_EXTRACT_INVALID_CHARACTER "-" Nachricht ":" Ungültiges Zeichen für UTF-8-Codierung im Eingabestream. " - "description": "Ungültiges Zeichen für UTF-8-Codierung in Eingabe gefunden." - "Auflösung": "Korrigieren Sie das ungültige Zeichen in der Eingabedatei - oder korrigieren Sie die Codierung im Extraktor und versuchen Sie es erneut."
Sind Sie lokal oder gegen Ihr Cloud-ADLA-Konto aktiv? Könnte es wert sein, beides zu versuchen, sehen Sie, ob Sie ein anderes Ergebnis bekommen. – wBob
Ich habe beide Optionen ausprobiert.Ich führe das Skript in Visual Studio gegen die Dateien lokal auf der Festplatte (das funktioniert). Ich habe auch versucht, das Skript in Visual Studio gegen Dateien in meinem ADLA-Konto sowie im Azure-Portal auszuführen (beide Fehler). Scheint etwas mit den virtuellen Spalten zu sein. Wenn ich diese entferne, wie im letzten Beispiel gezeigt, funktioniert es in allen Fällen. – John
Ich kann das nicht reproduzieren. Das zweite Skript funktioniert auf meinem lokalen und Cloud-ADLA-Konto einwandfrei. Welche Version der Tools verwenden Sie? Ich verwende 2.2.6000.1 mit Visual Studio 2015. Es könnte sich lohnen, das Skript über das Azure-Portal zu senden, das die Tools ausschließt, und schließlich eine Supportanfrage einreichen. – wBob