2016-06-07 18 views
1

任何人都可以請幫助我下面的查詢。 我有一個5列的RDD。我想加入卡桑德拉的一張桌子。 我知道有一種方法可以通過使用「joinWithCassandraTable」RDD joinwithCassandraTable

我看到某處使用它的語法。 語法: RDD.joinWithCassandraTable(KEYSPACE,表名,SomeColumns( 「可樂」, 「COLB」)) 。對(SomeColumns( 「COLC」))

任何人都可以請給我正確的語法?

我真的想知道在哪裏提到一個表的列名,這是一個關鍵的加入。

+0

我不想加載整個表,因爲它的體積龐大。所以我不想註冊爲 – Sri

回答

1

JoinWithCassandraTable通過僅拉動與C *中的RDD條目相匹配的分區鍵來工作,因此它僅適用於分區鍵。

該文檔是這裏 https://github.com/datastax/spark-cassandra-connector/blob/master/doc/2_loading.md#using-joinwithcassandratable

和API文檔是這裏

http://datastax.github.io/spark-cassandra-connector/ApiDocs/1.6.0-M2/spark-cassandra-connector/#com.datastax.spark.connector.RDDFunctions

可以在不流利API通過在該方法中指定了所有的參數可以使用的jWCT表方法

def joinWithCassandraTable[R](
    keyspaceName: String, 
    tableName: String, 
    selectedColumns: ColumnSelector = AllColumns, 
    joinColumns: ColumnSelector = PartitionKeyColumns) 

但流暢的api也可以使用

joinWithCassandraTable[R](keyspace, tableName).select(AllColumns).on(PartitionKeyColumns) 

這兩個調用是等價

你的榜樣

RDD.joinWithCassandraTable(KEYSPACE, tablename, SomeColumns("cola","colb")) .on(SomeColumns("colc")) 

使用對象從RDD加入反對tablenamecolc,只有返回colacolb作爲連接結果。