Как создать таблицу с помощью Spark Cassandra Connector? - PullRequest
1 голос
/ 14 марта 2019

Я недавно начал использовать Spark Cassandra Connector, и я вручную создал свою таблицу и смог сохранить данные. Вот упрощенный фрагмент из документов:

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"))

Есть ли способ создавать таблицы программным путем, выводя схему из классов дел без фактической записи необработанных запросов?

1 Ответ

1 голос
/ 14 марта 2019

Да, вы можете сделать это с saveAsCassandraTable и saveAsCassandraTableEx как , как описано в документации .Первая функция создаст таблицу автоматически, основываясь на ваших данных (будьте осторожны, чтобы в качестве ключа раздела был использован один столбец).Вторая функция позволит вам настроить схему, указав ключ раздела, столбцы кластеризации и т. Д., Как показано ниже (код из документации):

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"))
...