使用 Calliope 库的 Spark Cassandra 集成 - 不显示任何记录

Posted

技术标签:

【中文标题】使用 Calliope 库的 Spark Cassandra 集成 - 不显示任何记录【英文标题】:Spark Cassandra Integration using Calliope Library- Not displaying any records 【发布时间】:2015-01-15 11:02:42 【问题描述】:

尝试通过 spark-shell 使用 tuplejump Calliope-sql 连接 Cassandra。

Spark 版本 1.1.0:

连接:

./spark-shell  --master spark://PCSS-HDOP04:7077 --jars calliope-sql-assembly-1.1.0-CTP-U2.jar,calliope-sql_2.10-1.1.0-CTP-U2.jar,spark-cassandra-assembly-1.0.0-SNAPSHOT-jar-with-dependencies.jar,stargate-core-0.9.9.jar,calliope-core-assembly-1.1.0-CTP-U2.jar --conf "spark.cassandra.connection.host=10.234.31.231"

执行的命令:

import com.datastax.spark.connector._
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
 val conf = new SparkConf(true).set("spark.cassandra.connection.host", "10.234.31.231")
 val sc = new SparkContext("spark://PCSS-HDOP04:7077", "test", conf)
val sqlContext = new org.apache.spark.sql.CassandraAwareSQLContext(sc)
import sqlContext.createSchemaRDD
sqlContext.sql("select * from roadtrips.roadtrip")

输出:

scala> val res = sqlContext.sql("select * from roadtrips.roadtrip")
15/01/15 14:55:41 INFO CassandraAwareSQLContext$$anon$1: LOOKING UP DB [None] for CF [roadtrips.roadtrip]
15/01/15 14:55:41 INFO CassandraAwareSQLContext$$anon$1: INTERPRETED AS DB [Some(roadtrips)] for CF [roadtrip]
ArrayBuffer(id#21, destination_city_name#22, destination_state_abr#23, distance#24, elapsed_time#25, origin_city_name#26, origin_state_abr#27)
res: org.apache.spark.sql.SchemaRDD = 
SchemaRDD[6] at RDD at SchemaRDD.scala:103
== Query Plan ==
== Physical Plan ==
CassandraTableScan [id#21,destination_city_name#22,destination_state_abr#23,distance#24,elapsed_time#25,origin_city_name#26,origin_state_abr#27], (CassandraRelation 10.234.31.231, 9042, 9160, roadtrips, roadtrip, org.apache.spark.sql.CassandraAwareSQLContext@54bebc7b, None, None, false, Some(Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml)), []

scala>

卡桑德拉表:

 id | destination_city_name | destination_state_abr | distance | elapsed_time | origin_city_name | origin_state_abr
----+-----------------------+-----------------------+----------+--------------+------------------+------------------
 23 |           Los Angeles |                    CA |     2475 |         1700 |         New York |               NY
 33 |           Los Angeles |                    CA |     2475 |         1444 |         New York |               NY

仅检索列名而不检索记录的命令。

【问题讨论】:

【参考方案1】:

由于查询返回的记录数可能很大,因此默认情况下不显示结果。如果您想查看一些从 RDD 中检索到的记录,您可以使用 firsttake 方法:

val res = sqlContext.sql("select * from roadtrips.roadtrip")
res.first()
res.take(3)

【讨论】:

以上是关于使用 Calliope 库的 Spark Cassandra 集成 - 不显示任何记录的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop-Scala-Spark环境安装

cass配置重置怎么改不了

南方cass使用体会

关于南方Cass的使用感受

cass怎么给实体添加属性

南方cassAL和AR怎么不能用,在那设置