この方法でRDDを直接照会することはできません。 Sparkジョブをストリームプロセッサと考えてください。実行できるのは、更新されたモデルをデータベース(カスタムAPIまたはJDBCを使用)、ファイルシステム、memcachedなどの「ストア」にプッシュすることです。 Sparkコード内からWebサービス呼び出しを行うこともできます。
何をするにしても、I / Oを含むデータの各バッチを処理する時間は、指定した間隔時間よりも十分に短いことに注意してください。そうしないと、最終的にクラッシュする可能性のあるボトルネックのリスクがあります。
もう1つ注意すべき点は、モデルデータがクラスター全体に分散された複数のRDDパーティションにある場合です(これはもちろんデフォルトです)。 「レコード」の順序が重要でない場合は、それらを並行して書き出すことで問題ありません。特定の全順序を順番に書き出す必要がある場合(そしてデータが実際には大きくない場合)は、collect
を呼び出します。 それらをドライバーコード内の1つのメモリ内データ構造(分散ジョブのネットワークトラフィックを意味します)に取り込み、そこから書き込みます。