問題タブ [rdd]
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.
apache-spark - 大きなRDDと複数の小さなRDD
過去のデータ:
- GRP や CPP などの履歴情報を含むアクティビティごとに複数のテーブルがあります。
- アクティビティごとに GRP と CPP が定義されている複数のディメンションがあります。
ディメンション - Geography、TimePeriod、Primary_Message - 各アクティビティには、これらのディメンションのサブセットが含まれる場合があります
例
使用事例:
すべての活動について、期間全体のデータを表示したい場合があります (このディメンションはすべての活動で使用できます)。
地理的にデータを表示したい場合があります (このディメンションはいくつかのアクティビティに存在します)。
すべてのユースケースが効率的に機能するように RDD を設計する必要があります。
どの時点でも、各ジョブは 1 つのアクティビティに対応します。
私には2つの選択肢があります -
アクティビティごとに 1 つの RDD を作成し、そのテーブルのディメンション間で分割します。したがって、アクティビティと同じ数の RDD があります。
ジョブごとに、特定の RDD にアクセスして計算しますすべてのアクティビティに対して 1 つの RDD を作成し、いくつかのディメンションでそれを分割し
ます。ジョブごとに、1 つの大きな RDD にアクセスし、アクティビティの RDD でフィルターを実行し、計算を行います。
私の質問は、ユースケースと仮定を考慮して、RDD を設計するのにどのオプションがより効率的かということです。
ティア!
scala - scala を使用して Apache Spark で異なる RDD のデータセットを連結する
RDD
sparkで 2 つの異なる のデータセットを連結する方法はありますか?
要件は-同じ列名を持つscalaを使用して2つの中間RDDを作成し、両方のRDDのこれらの結果を結合し、UIにアクセスするために結果をキャッシュする必要があります。ここでデータセットを結合するにはどうすればよいですか?
RDD はタイプspark.sql.SchemaRDD
scala - 他のRDDマップメソッドでRDDを使用するには?
index: RDD[(String, String)] という名前の rdd を取得しました。index を使用してファイルを処理したいと考えています。これはコードです:
問題は、file.map 関数で index を使用できないことです。このプログラムを実行したところ、次のようなフィードバックが得られました。
どうしてか分かりません。そして、この機能を実装したい場合はどうすればよいですか? ありがとう
scala - Spark SQL を使用して/使用せずに 2 つの通常の RDD を結合する
RDDs
1つまたは複数の列で2つの通常を結合する必要があります。論理的には、この操作は 2 つのテーブルのデータベース結合操作と同等です。これだけで可能なのか、Spark SQL
それとも他の方法があるのか 疑問に思います。
具体的な例として、r1
主キーを持つ RDD を考えてみましょうITEM_ID
:
r2
主キーを持つRDD COMPANY_ID
:
参加したいr1
とr2
.
これはどのように行うことができますか?
scala - RDD を標準化する
double の RDD があり、次のように「標準化」したいとします。
- 各列の平均と標準偏差を計算します
- 列ごとに、各エントリから列平均を引き、結果を列 sd で割ります
これを効率的かつ簡単に行うことはできますか (どの段階でも RDD を double 配列に変換する必要はありません)。
よろしくお願いいたします。
apache-spark - RDD を更新するには?
履歴データをRDDセットに移動するSparkフレームワークを開発しています。
基本的に、RDD は不変で、操作を行う読み取り専用のデータセットです。それに基づいて、履歴データを RDD に移動し、そのような RDD でフィルタリング/マッピングなどの計算を行います。
現在、RDD 内のデータのサブセットが更新され、値を再計算する必要があるユース ケースがあります。
HistoricalData は RDD の形式です。リクエスト スコープに基づいて別の RDD を作成し、その RDD の参照をScopeCollectionに保存します。
これまでのところ、以下のアプローチを考えることができました-
アプローチ 1: 変更をブロードキャストします。
- 変更リクエストごとに、サーバーはスコープ固有の RDD をフェッチし、ジョブを生成します
- ジョブで、その RDD にマップ フェーズを適用します -
2.a。RDD の各ノードに対して、ブロードキャストでルックアップを実行し、現在更新されている新しい値を作成して、新しい RDD を作成し
ます。次に、step2.a で、この新しい RDD に対してすべての計算を再度実行します。乗算、削減など
2.c. この RDD 参照を ScopeCollection に保存します
アプローチ 2: 更新用の RDD を作成する
- 変更リクエストごとに、サーバーはスコープ固有の RDD をフェッチし、ジョブを生成します
- 各RDDで、変更のある新しいRDDと結合します
- ステップ 2 で、この新しい RDD で乗算、リダクションなどのすべての計算を再度実行します。
アプローチ 3:
同じRDDを更新し続けて再計算するストリーミングRDDを作成することを考えていました。しかし、私が理解している限りでは、Flume または Kafka からストリームを受け取ることができます。私の場合、値はユーザーの操作に基づいてアプリケーション自体で生成されます。したがって、私のコンテキストでは、ストリーミング RDD の統合ポイントが見当たりません。
どのアプローチが優れているか、またはこのシナリオに適した他のアプローチに関する提案。
ティア!
scala - タイプを変更して値を結合するためにreduceBykeyを使用できますか? - Scala Spark?
以下のコードでは、値を結合しようとしています:
reduceByValue
(a , 1,3,2) を含める必要がありますが、コンパイル時エラーが発生します:
reduce 関数の型を決定するものは何ですか? 型変換できないの?
同じ結果を得るために使用できますgroupByKey
が、理解したいだけですreduceByKey
。
java - Spark は、2 つのワーカーを持つクラスターの JdbcRDD で NullPointerException をスローします。
それぞれ 60 GB の 2 つのワーカーで Spark クラスターを実行しています。
以下の JdbcRDD のコードを書きました。
GetJdbcResult のコードは
}
上記のコードは正常に動作しますが、スタンドアロン モード (ローカル*) で Spark を実行しますが、クラスター環境を使用すると、以下のエラーがスローされます。
ドライバースタックトレース:
ワーカー ログにトレース/ログはありません。ここで何か間違っていますか?誰でも何か考えがありますか?