【问题标题】:How do I create a table using the Spark Cassandra Connector?如何使用 Spark Cassandra 连接器创建表?
【发布时间】:2019-08-05 02:51:07
【问题描述】:

我最近开始使用 Spark Cassandra 连接器,并且手动创建了我的表并能够保存数据。这是来自文档的简化 sn-p:

CREATE TABLE test.words (word text PRIMARY KEY, count int);
val collection = sc.parallelize(Seq(("cat", 30), ("fox", 40)))
collection.saveToCassandra("test", "words", SomeColumns("word", "count"))

有没有一种方法可以通过从案例类推断架构来以编程方式创建表,而无需实际编写原始查询?

【问题讨论】:

    标签: scala apache-spark cassandra spark-cassandra-connector


    【解决方案1】:

    是的,您可以将saveAsCassandraTablesaveAsCassandraTableEx 用作described in documentation。第一个函数将根据您的数据自动创建表(注意它会将一列作为分区键)。第二个函数将允许您通过指定分区键、集群列等来自定义架构,如下所示(代码来自文档):

    val p1Col = new ColumnDef("col1",PartitionKeyColumn,UUIDType)
    val c1Col = new ColumnDef("col2",ClusteringColumn(0),UUIDType)
    val c2Col = new ColumnDef("col3",ClusteringColumn(1),DoubleType)
    val rCol = new ColumnDef("col4",RegularColumn,IntType)
    
    // Create table definition
    val table = TableDef("test","words",Seq(p1Col),Seq(c1Col, c2Col),Seq(rCol))
    
    // Map rdd into custom data structure and create table
    val rddOut = rdd.map(s => outData(s._1, s._2(0), s._2(1), s._3))
    rddOut.saveAsCassandraTableEx(table, SomeColumns("col1", "col2", "col3", "col4"))
    

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 2015-10-28
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 2014-12-19
      • 2016-09-06
      相关资源
      最近更新 更多