我希望在RDD和cassandra表上建立联接,这些表对于相同的密钥具有不同的名称 ex(简化):
case class User(id : String, name : String)
和
case class Home( address : String, user_id : String)
如果想做:
rdd[Home].joinWithCassandraTable("testspark","user").on(SomeColumns("id"))
如何确定要进行连接的字段的名称。 而且我不想将rdd映射到只有正确的id,因为我想在joinWithCassandraTable之后加入所有值。
答案 0 :(得分:12)
您可以使用“as”语法,就像在select中更改已连接列的映射一样。
一个例子
sc.cassandraTable[Home]("ks","home").joinWithCassandraTable("ks","user").on(SomeColumns("id" as "user_id")).collect
将用户表中的“id”列映射到Home
案例类的“user_id”字段。
答案 1 :(得分:1)
您可以尝试在Cassandra表中读取时更改列名,以便它与您要加入的RDD字段匹配:
例如:
if user_signed_in?