我是Spark和Scala的新手,我通过数据交换开源使用spark-shell访问Cassandra connector
使用此命令:
sc.cassandraTable("keyspace","table")
.select("gender","name")
.mapValues(v => v.get())
.lookup("Male")
并收到此错误:
error: value mapValues is not a member of com.datastax.spark.connector.rdd.CassandraTableScanRDD[com.datastax.spark.connector.CassandraRow]
我不知道这种转变是否仅适用于数据存储企业;我无法找到更多相关信息。
更多详情:
答案 0 :(得分:0)
确定。我已经通过这种方式解决了问题:
sc.cassandraTable[(String,String)]("keyspace","table")
.where("gender = 'Male'")
.select("gender","name")
.map{case (k,v) => (v,1)}
.reduceByKey{case (v,count) => count + count}
.collect.foreach(println)
解决方案的关键是Spark中Cassandra Row和Scala类型之间的类型转换cassandraTable[(String,String)]
。
谢谢。