2016-04-03 12 views
0

私はjoinに2つのdataframesをデータベースCassandraからスパークさせようとしています。sparkで2つのデータフレームを結合している間に、空の結果を得る

val table1=cc.sql("select * from test123").as("table1") 

val table2=cc.sql("select * from test1234").as("table2") 

table1.join(table2, table1("table1.id") === table2("table2.id1"), "inner") 
    .select("table1.name", "table2.name1") 

私は取得しています結果はemptyです。

答えて

0

ここでjoinの構文がわからない場合は、純粋なSQLの方法を試すことができます。 TABLE1とtable2の場合

table1.registerTempTable("tbl1") 
table2.registerTempTable("tbl2") 

val table3 = sqlContext.sql("Select tbl1.name, tbl2.name FROM tbl1 INNER JOIN tbl2 on tbl1.id=tbl2.id") 

また、あなたは本当に最初の場所で、上の参加行うには、同じIDを持って、表示されるはずです。

アップデート: - 理想的

import org.apache.spark.sql.SQLContext 
val sqlContext = new org.apache.spark.sql.SQLContext(sc) 

、はい、CSCも動作するはずです。あなたはhttp://spark.apache.org/docs/latest/sql-programming-guide.html

+0

'登録する必要があり :34:エラー:見つかりません:値sqlContext valを表3 = sqlContext.sql(" tbl1.nameを選択します、tbl2.name FROM tbl1 INNER JOIN tbl2 on tbl1.id = tbl2.id ")'私はcassandraコンテキスト(cc)を使ってデータフレームtable1とtable2を作成しました。 – user3774905

+0

答えを更新しました –

0

まず組合の両方のデータフレームを参照し、その後、一時テーブルとして

関連する問題