【问题标题】:How to read specific columns from Cassandra table using Datastax spark-cassandra-connector?如何使用 Datastax spark-cassandra-connector 从 Cassandra 表中读取特定列?
【发布时间】:2018-03-01 00:11:40
【问题描述】:

我正在使用 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 来做同样的事情?

【问题讨论】:

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


    【解决方案1】:
    SparkUtil.initSpark()
             .read
             .format("org.apache.spark.sql.cassandra")
             .options(Map("table"-><table_name>, "keyspace"-><keyspace>))
             .load()
             .select("column_name")
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        从 Cassandra 表中获取几列的单行解决方案:

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

        【讨论】:

          猜你喜欢
          • 2018-03-26
          • 2016-08-20
          • 2016-09-02
          • 2017-10-24
          • 2020-12-22
          • 2020-10-17
          • 2017-08-06
          • 2019-10-15
          • 2023-03-26
          相关资源
          最近更新 更多