2017-07-25 6 views
2

私は、zipファイルを処理するu-sqlジョブに奇妙な問題があります。 通常のcsvファイルでu-sqlを実行すると正常に動作します。私はそれはもう動作doenstファイルをgzipなら(E_RUNTIME_USER_EXTRACT_ENCODING_ERRORを生成:エンコーディングエラーが頂点」入力分割で0レコード(複数可)を処理した後に発生しました。)gzipと仮想カラムを使用したu-sqlの問題

だから動作するコードが

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

です私はREMO場合

このコードは(ファイルのGZ版)

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

を動作しません。それは私が使用している二つのファイルで添付GZバージョン

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

のために働く仮想列「ID」をVEの。誰が何が起こっているかについての手がかりを持っていますか? virualカラムIDを削除すると、両方のカラムIDが機能しますか?

test.csv

test.csv.gz

私だけ、私はデータ湖ストレージ内のファイルに対して実行すると、このエラーが発生します。ファイルに対してローカルで実行すると、正常に動作します。

Iが受け取る詳細なエラーが "internalDiagnostics" である: "" - "innerError":{ "diagnosticCode":195887128 - "重症度": "エラー" - "成分": "ランタイム" - "ソース":」ユーザー "-" errorId ":" E_RUNTIME_USER_EXTRACT_INVALID_CHARACTER "-"メッセージ: "入力ストリームにUTF-8エンコーディングの文字が無効です。" - "description": "入力でUTF-8エンコーディングの無効な文字が見つかりました。 - "resolution": "入力ファイル-の無効な文字を修正するか、またはエクストラクタで正しいエンコーディングを行い、再試行してください。"

+0

ローカルまたはクラウドADLAアカウントに対して実行していますか?両方を試してみる価値があるかもしれませんが、別の結果が得られるかどうかを見てください。 – wBob

+0

私は両方のオプションを試しました。私は、Visual Studioでディスク上のファイルに対してこのスクリプトを実行します(これは動作します)。私はまた、ADLAアカウントとAzureポータルの両方のファイルに対してVisual Studioでスクリプトを実行しようとしましたが失敗しています。仮想列で何かに見えます。最後の例に示すようにこれらを削除すると、すべてのケースで機能します。 – John

+0

これは再現できません。 2番目のスクリプトは、私のローカルとクラウドのADLAアカウントで完璧に動作します。どのバージョンのツールを使用していますか?私はVisual Studio 2015で2.2.6000.1を使用しています。ツールを除外するAzureポータルを介してスクリプトを提出し、最終的にサポート依頼を提出することを検討する価値があります。 – wBob

答えて

1

私はまったく同じ問題を抱えていました。 ADLAの新しいランタイムのバグと思われます。 MSはそれに取り組んでいます。この修正は、私の仕事:

SET @@FeaturePreviews = "FileSetV2Dot5:on"; 
4

をいくつかの追加の問題を追加するには:

  1. これが確認された欠陥でした。 @@FeaturesPreview = "FileSetv2Dot5:on"フラグの有無にかかわらず、この問題に直面することはありません。

  2. SET @@FeaturesPreview = "FileSetv2Dot5:on"上記のようなフラグは、欠陥が存在しない場合に別のプランを強制的に生成するため、正しい回避策でした。

  3. SET @@FeaturesPreview = "FileSetv2Dot5:on"は、デフォルトではまだオフになっています。

関連する問題