RDD1.joinWithCassandraTable(“keyspace”,“Tableabc”,SomeColumns(“lines”),SomeColumns(“col1”,“col2”,“col3”))
以上是将RDD1与Cassandra中的表连接的语法。其中col1,col2,col3是用于与RDD1
连接的列我有如下要求。 Tableabc有一个名为“lines”的列,其数据类型为“list”。 此行列有4列,如下所示。
line:{cola:22,colb:hello,colc:sri,cold:123}
基本上是一个json对象。
现在,如果您看到我的语法,我使用了SomeColumns(“lines”)。我可以将输出作为RDD获得,如下所示。
(RDD1columns,CassandraRow {lines:[{cola:22,colb:hello,colc:sri,cold:123}]})
但我需要的是我只想选择“可乐”,我不需要行中的所有列。
任何人都可以帮助我。
答案 0 :(得分:0)
JoinWithCassandraTable在数据库上调用直接连接,并且只能在加入分区键时使用。如果您想加入分区键的一部分,则需要进行全面扫描。
这意味着无法在任何集合列上执行JWCT。
如果lines
具有键:值对,那么它是怎样的?
如果你只想要"可乐"来自线条的价值你可以做一张地图
RDD1.joinWithCassandraTable().map(_._2.get[Map[String, AnyRef]](lines).get("cola"))