2016-05-23 14 views
0

this question answersを使用して1つの列(文字列値)でRDDテーブルを使いこなそうとしていますが、このように列名を追加することはできません...私はScalaを使用しています。列をRDDに追加するSpark 1.2.1

RDDにカラムを追加する簡単な方法はありますか?

+0

チェックした場合:http://stackoverflow.com/questions/29622867/add-a-new-calculated-column-from-2-values-in-rdd – User2130

+1

あなたは私たちにいくつかの作品を表示することができますあなたが使用しようとしているコードの? –

答えて

2

Apache Sparkには、機能アプローチがあります。基本的には、RDD[T]は何らかのオブジェクトの集合です(RDDResilient Distributed Data構造の略です)。

RDD内のオブジェクトは、の変換を使用して作成します。変換は、前のものから新しいRDDを構築する。

変換の一例は、mapの方法です。 mapを使用すると、必要な他のすべてのタイプのオブジェクトにRDDの各オブジェクトを変換できます。したがって、を表すデータ構造がある場合は、追加された行を持つ新しい構造でその構造をトランスフォームすることができます。

たとえば、次のコードを入力します。この例では

val rdd: (String, String) = sc.pallelize(List(("Hello", "World"), ("Such", "Wow")) 
// This new RDD will have one more "column", 
// which is the concatenation of the previous 
val rddWithOneMoreColumn = 
    rdd.map { 
    case(a, b) => 
     (a, b, a + b) 

(カップル別名)Tuple2RDDは単に各RDD要素に関数を適用し、Tuple3RDDに変換されます。

明らかに、オブジェクトrddWithOneMoreColumnに対してアクションを適用して計算を行う必要があります。実際、Apache Sparkはすべての変換の結果を遅延的に計算します。このリンクの情報が役立ちます

+0

元のRDDのデータがCassandraテーブルの行であればどうなりますか? – Rada

+0

カッサンドラから抽出するオブジェクトのタイプはどれですか? –

+3

"元のRDDのデータがCassandraテーブルの行であればどうでしょうか?"それから、私たちのほとんどがテレパシーではないので、あなたは私たちに言わなければなりません。 –

関連する問題