我们有两个DSE集群,我们希望使用DSE spark从cluster1中提取数据并进行一些转换并加载到cluster2中。
如何实现这个?
答案 0 :(得分:1)
您可以使用DSE spark从Cluster1加载到Cluster2。 唯一的先决条件是使密钥空间和表已经在集群2中,其中将加载数据。
对于以下设置:
来源群集
群集1:
Keyspace:rrtest
table:rrexample
目标群集
群集2:
keyspace:test
表:示例
现在,这里的第一步是创建键空间和表。 假设该表具有以下描述(从cql shell创建)
在群集1上:
CREATE TABLE rrtest.rrexample
(
username text PRIMARY KEY,
password text,
state text
)
在群集2上:
CREATE TABLE test.example
(
username text PRIMARY KEY,
password text,
state text
)
用于迁移到cluster2的Scala代码
************ Load from Cluster 1*************
import com.datastax.spark.connector.cql._
import java.net.InetAddress
val myrdd = { implicit val src = CassandraConnector(Set(InetAddress.getByName("<ip : host1>"))); sc.cassandraTable("rrtest", "rrexample").select("username", "password", "state") }
************ Migrate to Cluster 2************
{ implicit val dst = CassandraConnector(Set(InetAddress.getByName("<ip:host2>"))); myrdd.saveToCassandra("test", "example") }