我们如何在没有表定义的情况下使用幻像驱动程序进行选择查询

时间:2016-09-15 10:43:48

标签: scala datastax datastax-enterprise phantom-dsl

我有来自SparkStreaming的数据流。我需要处理并最终想要将数据存储在Cassandra中。所以,早些时候我试图使用SparkCassandra连接器。但它没有为工作者提供SparkStreaming Context对象的访问权限。所以,我必须使用单独的cassandra-scala驱动程序。因此,我最终得到了phantom。现在,我的问题是我已经在cassnandra中定义了列族。那么,我如何从scala中选择和更新查询。

我已经遵循了这些文档link1,但我不明白为什么我们需要在客户端(scala代码)端提供表定义。为什么我们不能只提供KeyspaceClusterPointsColumnFamily并完成它。

     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
    }

1 个答案:

答案 0 :(得分:0)

使用幻像尚无法做到这一点,我们正在积极致力phantom-spark以允许您这样做,但在此阶段,这还需要几个月的时间。

在此期间,您将不得不依赖spark cassandra连接器并使用非类型安全API来实现此目的。这是一个更不幸的设置,但在不久的将来,这将得到解决。