如何使用Datastax spark-cassandra-connector从Cassandra表中读取特定列?

时间:2017-09-20 04:45:40

标签: apache-spark cassandra apache-spark-sql

我正在使用spark-cassandra-connector_2.11(版本2.0.5)将数据从Cassandra加载到Spark集群中。我使用read api加载数据如下:

SparkUtil.initSpark()
         .read
         .format("org.apache.spark.sql.cassandra")
         .options(Map("table"-><table_name>, "keyspace"-><keyspace>))
         .load()

它的工作正常,但是,在一个用例中,我想只读取Cassandra的特定列。如何使用read api做同样的事情?

3 个答案:

答案 0 :(得分:4)

SparkUtil.initSpark()
         .read
         .format("org.apache.spark.sql.cassandra")
         .options(Map("table"-><table_name>, "keyspace"-><keyspace>))
         .load()
         .select("column_name")

使用select ..您也可以使用案例类

答案 1 :(得分:2)

其他方法是使用以下方法而不使用选项api。

SparkUtil.initSpark()
         .sparkContext
         .cassandraTable(<keyspace>, <table_name>) 
         .select(<column_name>)

答案 2 :(得分:-1)

一种从Cassandra表中获取几列的解决方案:

val rdd = sc.cassandraTable(“ keyspace”,“ table_name”)
   .select(“ service_date”,“ mobile”)。persist(StorageLevel.MEMORY_AND_DISK)