カスタムIOutputterの結果をローカルディスク上の中間ファイルに書き込もうとしています。Azure Data Lake Analytics IOutputter E_RUNTIME_USER_ROWTOOBIG
その後、データベースファイル(〜20MB)をadl出力ストアにコピーします。
悲しいことにスクリプトがで終了:
タイプ 'Microsoft.Cosmos.ScopeStudio.BusinessObjects.Debugger.ScopeDebugException' の未処理の例外がMicrosoft.Cosmos.ScopeStudio.BusinessObjects.Debugger.dll
で発生しました追加情報: {"diagnosticCode":195887112、 "重大度": "エラー"、 "コンポーネント": "ランタイム"、 "ソース": "ユーザー"、 "errorId": "E_RUNTIME_USER_ROWTOOBIG"、 "message" " 行が最大許容サイズの を超えました"行が最大許容サイズ4MBを超えました"、 "internalDiagnostics": " 7ffe97231797 \"、 "description": ""、 "description" tScopeEngine!?ToStringInternal @ KeySampleCollection @SSLibV3 @ScopeEngine @AEAA?AV?$ basic_string @ DU?char_traits @D @ std @@ V?$ allocator @D @ 2 @ std @@ XZ + 11b7 \ t \ n 7ffe971d7261 \ tScopeEngine !? 0ExceptionWithStack @ ScopeEngine @@ QEAA @ W4ErrorNumber @ 1 @ AEBV?$ initializer_list @ VScopeErrorArg @ ScopeCommon @@@ std @@ _ N @ Z + 121 \ t \ n 7ffe971d7f6a \ tScopeEngine !? 0RuntimeException @ ScopeEngine @@ QEAA @ W4ErrorNumber @ 1 @ PEBD @ Z + AA \さt \ n個の7ffe6de06acaの\ tの(なしモジュール)!(名前なし)\トン\ nは
public class CustomOutputter : IOutputter
{
private Stream stream;
public override void Close()
{
base.Close();
using (var fs = File.Open("mydb.data", FileMode.Open))
{
fs.CopyTo(stream);
}
}
public override void Output(IRow input, IUnstructuredWriter output)
{
if(stream == null)
stream = output.BaseStream;
myDb.Insert("somestuff");
}
}
この問題に関するアイデアですか?
ご返信ありがとうございます。 しかし私はFileCopyUDOで私の問題を解決することができません。 出力関数で直接streamWriterをoutput.BaseStreamに書き込んでいるときに、私は4MBの制限に達することはありません。 私の問題は、組み込みのデータベースを使用して、output.BaseStreamをデータベースに渡して書き込めないことです。私は ファイルパスでデータベースを使用することができます。結果として得られるデータベースファイルは頂点に対してローカルになります。 これ以降の処理のために、ローカルファイルをADLで利用できるようにする方法が見つかりません。 – coalmee