【问题标题】:saveToCassandra saving the whole table instead of a single rowsaveToCassandra 保存整个表而不是单行
【发布时间】:2016-01-21 03:33:06
【问题描述】:

我有一个 cassandra 键空间和表,我从中查询数据以便写入另一个键空间/表。我的代码如下:

val test = sc.cassandraTable("model","data")
.where("id = 9999999")
.select("id","cl1","cl2","data")
.filter(row => row.getString("data") == "Hello")


test.saveToCassandra("model","dataspark",SomeColumns("id","cl1","cl2","data"))

问题是由于某种原因,它正在将 model.data 中的所有内容写入 model.dataspark 而不是我在 val 测试变量中指定的内容。我一定有一些语法或错误。

如果我 .collect 并执行 .foreach(println) 它只显示我按预期查询的单个条目。我的 saveToCassandra 语句一定是错误的,但我不确定它有什么问题。

我用一个案例类尝试了整个事情,结果相同:

case class Record(id: Int, cl1: Int, cl2: Int, data: Option[String])
val test = sc.cassandraTable[Record]("model","data")
.where("id = 9999999").select("id","cl1","cl2","data")
test.saveToCassandra("model","dataspark", SomeColumns("id","cl1","cl2","data"))

【问题讨论】:

    标签: scala apache-spark cassandra


    【解决方案1】:

    我发现了问题。

    val test = sc.cassandraTable("model","data")
    .where("id = 9999999")
    

    需要在同一行

    val test = sc.cassandraTable("model","data").where("id = 9999999")
    

    【讨论】:

    • 在我的代码火花中,即 SparkSession 没有 cassandraTable 或 saveToCassandra 方法......我应该如何获得它?我正在使用 spark-sql v2.3.1 将数据写入 cassandra v3.11.1,并且我已经在我的类路径中添加了 spark-cassandra-connector 和 cassandra-driver-core jars
    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多