我有来自SparkStreaming的数据流。我需要处理并最终想要将数据存储在Cassandra中。所以,早些时候我试图使用SparkCassandra连接器。但它没有为工作者提供SparkStreaming Context对象的访问权限。所以,我必须使用单独的cassandra-scala驱动程序。因此,我最终得到了phantom。现在,我的问题是我已经在cassnandra中定义了列族。那么,我如何从scala中选择和更新查询。
我已经遵循了这些文档link1,但我不明白为什么我们需要在客户端(scala代码)端提供表定义。为什么我们不能只提供Keyspace
,ClusterPoints
和ColumnFamily
并完成它。
object CustomConnector {
val hosts = Seq("IP1", "IP2")
val Connector = ContactPoints(hosts).keySpace("KEYSPACE_NAME")
}
realTimeAgg.foreachRDD{ x => if (x.toLocalIterator.nonEmpty) {
x.foreachPartition {
How to achieve select/insert in Cassandra table here using phantom
}
答案 0 :(得分:0)
使用幻像尚无法做到这一点,我们正在积极致力phantom-spark
以允许您这样做,但在此阶段,这还需要几个月的时间。
在此期间,您将不得不依赖spark cassandra连接器并使用非类型安全API来实现此目的。这是一个更不幸的设置,但在不久的将来,这将得到解决。