問題タブ [u-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
u-sql - Rowset 変数をスカラー値に変換する
たとえば、行セット変数をスカラー値に変換することは可能ですか?
azure-data-lake - ファイルの有効期限を設定する方法
Cosmos SCOPE スクリプトでは、次のコードを使用してストリーム/ファイルの有効期限を設定できます。
U-SQL で同等の構文は何ですか?
azure-data-lake - フラット ファイルと SQL からの内部結合行セット
以下のようなTSVファイルがあります。
以下のようなUSQLテーブルがあります。
行セットの両方に参加しようとしており、各会社の Company_Type を取得しようとしています。
脚本:
上記のスクリプトを実行すると、次のエラーが発生します。
エラー:
azure - USQL Azure Data lake での更新
行セットの値を更新する方法はありますか
データ:
USQL スクリプト:
ここで、上記の結果セット @result set type =1 を更新したいと思います。値は apple です
以下のスクリプトを試しました。
しかし、私は以下のエラーが発生します:
行セットの値を更新できる方法はありますか、それとも他の回避策を見つける必要がありますか。
azure - Azure Data Lake Analytics での E_RUNTIME_SYSTEM_ERROR
Azure Data Lake Analytics でベンチマークを行っています。実行フェーズ Combine_partition 中にクエリを実行した後、次のエラーが発生しました。
ERROR E_RUNTIME_SYSTEM_ERROR MESSAGE システム エラーが報告されました [VirtualAlloc が 0 を返しました]
メモリ不足の例外のようです。何か案が?
azure-data-lake - Alias からの U-SQL Intellisense
U-SQL でエイリアスを使用すると、インテリセンスは何も要求しません。例えば、
この場合、インテリセンスは機能します。しかし、以下の例ではそうではありません。
これは、単純なクエリ以外を実行するときに問題を引き起こします。誰かがこれを回避する方法を知っていますか?
azure-data-lake - USQL でカスタム エクストラクタを記述して、エンコーディングの問題がある行をスキップする
数百のファイルにまたがる大量のデータ セットがあります。どうやら、エンコーディングの問題がいくつかあるようです (ほとんどが UTF-8 ですが、有効でない文字もあるようです)。https://msdn.microsoft.com/en-us/library/azure/mt764098.aspxによると、エンコードエラーがある場合、silent フラグを true に設定しても実行時エラーが発生します (単にスキップすることを目的として)エラー行)。
その結果、カスタム エクストラクタを作成する必要があります。https://blogs.msdn.microsoft.com/data_otaku/2016/10/27/a-fixed-width-extractor-for-azure-data-lakeの例の簡略化されたバージョンを主に実行するものを書きました-analytics/は、行を取得し、区切り文字で分割し、try ブロック内の値を返すだけです。例外があれば、それを処理して次に進みます。
残念ながら、USQL スクリプト自体でこのエクストラクタを実際に参照する際に問題が発生しています。上記のリンクのガイダンスに従うと、別のアセンブリにロジックを記述し、それを構築し、それを ADLS データベース/アセンブリに登録してからREFERENCE ASSEMBLY MyExtractors;
、スクリプトの先頭に含めることを提案しています (これが使用される名前空間であるため)。以下の Using ステートメントでは、次のように呼び出していUSING new SimpleExtractor();
ますtype or namespace cannot be found
。さらに、より正確に using ステートメントで使用しようとするとUSING new MyExtractors.SimpleExtractor();
、上記の USING ステートメントを引用して同じエラーが発生します。
その後、 https://azure.microsoft.com/en-us/documentation/articles/data-lake-analytics-u-sql-develop-user-defined-operators/の古いソースで追加のドキュメントを見つけました。同じことですが、コード ビハインド ファイルにあります。別のアセンブリを削除し、ロジックをそのファイルのクラスにコピーしました。REFERENCE ASSEMBLY
手順 6 の例にはステートメントが表示されていませんが、再度実行すると、 type or namespace name cannot be found
.
ここで何かが古くなっていることを期待して最新のリリースノートを見ると、USING
ステートメントを使用する場合、実際に実行する前に(最初の試行のように)カスタムコードのアセンブリへの参照が必要であることがわかります。私はそれを使用しています。
USQL で UDO を適切に参照する方法、またはランタイムがエンコード例外をサイレントに処理する方法 (およびスキップする方法) について、誰かがガイダンスを提供してもらえますか?
エクストラクタ自体での私のロジックは次のようになります。
そして、USQLステートメントでそれを使用しようとしている方法のスニペット(アセンブリとして登録した後):
ありがとうございました!
c# - USQL での異なる列を持つファイルの処理
ファイルをロードするための USQL スクリプトと CSV エクストラクタがあります。ただし、ファイルに 4 列が含まれる月もあれば、5 列が含まれる月もあります。
4 つまたは 5 つのフィールドの列リストを使用してエクストラクターをセットアップすると、ファイルの予想される幅に関するエラーが発生します。区切り文字などをチェックしてください。当然のことです。
USQL がまだ初心者であり、いくつかの基本的なエラー処理が欠けていることを考えると、この問題の回避策は何ですか?
エクストラクタでサイレント句を使用して、4 列に便利な幅の広い列を無視しようとしました。次に、IF 条件を使用して行セットの行数を取得し、5 列のエクストラクターを使用します。ただし、これは、IF 式でスカラー変数として使用されない行セット変数の世界につながります。
また、C# スタイルの count と sizeof(@AttemptExtractWith4Cols) も試しました。どちらも機能しません。
私が取っているアプローチの感触をつかむためのコードスニペット:
もちろん、USQL にTRY CATCHブロックのようなものがあれば、これはずっと簡単になります。
これは取るべき合理的なアプローチでさえありますか?
任意の入力をいただければ幸いです。
お時間をいただきありがとうございます。