2016-11-08 4 views
0

Apache Sparkの新機能です。私はApache Cassandraデータベースからデータを取得してJavaRDDを作成するプログラムを作成しています。次に、ドライバプログラムの一部ではないヘルパーメソッドを呼び出すことによって、RDDの各要素を処理します。Java RDDの各要素のデータベースへの通知制限を読み込んで保存する方法

特定の条件に基づくヘルパーメソッドでは、電子メール通知を送信したいと考えています。しかしその前に、そのユーザーに既に送信された通知の数を取得したいと思います。制限を超えていない場合は、通知を送信し、そのユーザーのデータベースで通知番号を増やしたいと考えています。

このデータを取得するにはどうしたらいいですか?ドライバプログラムでなく、ヘルパーメソッドでsparkContextを持っていないときにも、このデータをデータベースで更新できますか?

お勧めします。彼らはお互いにないsynchroniza状態を行いますので、私はカサンドラのJavaコネクタ

をApacheのスパーク2.0.0を使用してスパークしています事前

答えて

0

にありがとうそれは、唯一の執行にはできません。しかし、あなたはこのソリューションを試すことができます。

    は(スキーマが (user, [notif1, notif2, ...])に変更されます。このデータフレームに collect_list集約を行い、あなたが
  1. を送信するすべてのユーザーのすべての通知のスキーマ(user, notification)でデータフレームを返すために、あなたのヘルパーメソッドを書き直し
  2. 既にの
  3. ロードデータは、例えば(user, remaining_notifications_number)
  4. (2)からのデータセットに参加し、新しいデータフレームに通知を送信し、(3)及び限界を超えていない通知の数を送信された各結果のために。

希望に役立ちます!

+0

ありがとう@マリウス。私はこのようにします。 – Shashi

関連する問題