绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Spark学习笔记——读写ScyllaDB
2022-04-19 10:43:04

Scylla兼容cassandra API,所以可以使用spark读写cassandra的方法来进行读写

1.查看scyllaDB对应的cassandra版本

1
2
cqlsh:my_db> SHOW VERSION
[cqlsh 5.0.1 | Cassandra 3.0.8 | CQL spec 3.3.1 | Native protocol v4]

2.查看spark和cassandra对应的版本

参考:https://github.com/datastax/spark-cassandra-connector

3.写scyllaDB

dataset API写scyllaDB

1
2
3
4
5
ds2.write
      .mode("append")
      .format("org.apache.spark.sql.cassandra")
      .options(Map("table" -> "my_tb""keyspace" -> "my_db""output.consistency.level" -> "ALL""ttl" -> "8640000"))
      .save()

RDD API写scyllaDB

1
2
3
4
import com.datastax.oss.driver.api.core.ConsistencyLevel
import com.datastax.spark.connector._
 
ds.rdd.saveToCassandra("my_db""my_tb", writeConf = WriteConf(ttl = TTLOption.constant(8640000), consistencyLevel = ConsistencyLevel.ALL))

注意字段的数量和顺序需要和ScyllaDB表的顺序一致,可以使用下面方式select字段

1
2
3
4
5
6
7
8
9
10
val columns = Seq[String](
      "a",
      "b",
      "c")
val colNames = columns.map(name => col(name))
val colRefs = columns.map(name => toNamedColumnRef(name))
 
val df2 = df.select(colNames: _*)
df2.rdd
      .saveToCassandra(ks, table, SomeColumns(colRefs: _*), writeConf = WriteConf(ttl = TTLOption.constant(8640000), consistencyLevel = ConsistencyLevel.ALL))

不过官方推荐使用DataFrame API,而不是RDD API

If you have the option we recommend using DataFrames instead of RDDs

1
https://github.com/datastax/spark-cassandra-connector/blob/master/doc/4_mapper.md

 

4.读scyllaDB

1
2
3
4
5
val df = spark
  .read
  .format("org.apache.spark.sql.cassandra")
  .options(Map( "table" -> "words""keyspace" -> "test" ))
  .load()

  

参考:通过 Spark 创建/插入数据到 Azure Cosmos DB Cassandra API

Cassandra Optimizations for Apache Spark

分享好友

分享这个小栈给你的朋友们,一起进步吧。

ScyllaDB
创建时间:2022-04-19 10:18:17
ScyllaDB 是用 C++ 重写的 Cassandra,每节点每秒处理 100 万 TPS。ScyllaDB 完全兼容 Apache Cassandra,拥有比 Cassandra 多 10x 倍的吞吐量,降低了延迟。 ScyllaDB 是性能优异的 NoSQL 列存储数据库。 ScyllaDB 在垃圾收集或者 Compaction 的时候不需要暂停;在常规生产负载的时候可以添加和删除节点。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~