如何使用spark scala比较cassandra中具有相同字段的两个表

时间:2017-10-31 06:53:50

标签: scala apache-spark cassandra

我想使用spark scala来比较cassandra中的两个表。考虑像

这样的表格
Id        name.    Phno.           Id.      Name.         Phno 
1.        Aaa.      11.            1.       Ccc.          11
2.        Bbb.      22.            2.       Bbb.          22

预期结果应如下所示

Id. OldValue.  NewValue
1.   Aaa.            Ccc    

提前致谢

1 个答案:

答案 0 :(得分:0)

在下面尝试一些siliar。 Spark确实允许连接。根据需求更改连接到左/右(默认为内连接)。

val oldDF = sc.read.format("org.apache.spark.sql.cassandra")
          .options(Map('keyspace'->"YOUR_KEYSPACE",'table'->"YOUR_TABLE1"))
          .load()
          .select(col("id"),col("name").as("oldValue"))

val newDF = sc.read.format("org.apache.spark.sql.cassandra")
          .options(Map('keyspace'->"YOUR_KEYSPACE",'table'->"YOUR_TABLE2"))
          .load()
          .select(col("id"),col("name").as("newValue"))

val joined = oldDF.join(newDF,Seq("id"))