2016-06-16 4 views
0

RDD1.joinWithCassandraTable参加() "鍵空間"、 "Tableabc" を、SomeColumns( "行")、SomeColumns( "COL1" "COL2"、 "COL3")は、上記RDD JoinWithCassandraTable列に

がする構文ですRDD1とCassandraのテーブルを結合する。ここでcol1、col2、col3はRDD1との結合に使用される列です

私は以下のような要件を持っています。 Tableabcには、データ型 "list"の "lines"という名前の列があります。 この行の列には、以下のような4つの列があります。

行:{コーラ:22、COLB:こんにちは、COLC:SRI、冷:123}

基本的にJSONオブジェクト。

ここで私の構文を見ると、私はSomeColumns( "lines")を使いました。私は以下のようにRDDとして出力を得ることができます。

(RDD1columns、CassandraRow {行:[{コーラ:22、COLB:こんにちは、COLC:SRI、寒さ:123}]})

しかし、私はちょうどのみ "コーラ" を選択したいです必要なもの、私はラインのすべての列が必要ない。

誰も私に同じ助けてもらえますか?

+0

を行うことができます。 cola ")、SomeColumns(" col1 "、" col2 "、" col3 ")) – Sri

+0

lines.colaのようなエラーメッセージが表示されます。 – Sri

+0

jsonを取得した後、マップを使用してjsonを解析してコーラを取得することができます – Knight71

答えて

0

JoinWithCassandraTableはデータベースの直接結合を呼び出し、パーティションキーを結合するときにのみ使用できます。パーティションキーの一部に参加したい場合は、完全スキャンを行う必要があります。

これは、任意のコレクション列に対してJWCTを実行することができないことを意味します。

linesキーがある場合はリスト:値ペア?

あなただけの行から「コーラ」の値をしたい場合は、ちょうど私がRDD1.joinWithCassandraTable(「鍵空間」、「Tableabc」、SomeColumns(「行のようなものを使用しようとしたマップ

RDD1.joinWithCassandraTable().map(_._2.get[Map[String, AnyRef]](lines).get("cola")) 
関連する問題