我是新来的火花并试图实现以下目标。我无法找到最好的方法来做到这一点。请建议。
我正在使用 Spark 2.0 及其数据集、Cassandra 3.7 和 Cassandra Java 连接器
我有一个带有分区键和 2 个集群键的 ColumnFamily。例如 myksyspace.myTable (some_id, col1, col2, col3, col4, col5, PRIMARY KEY (some_id, col1, col2))
我可以在 myTableDataset 中获取 myksyspace.myTable 的数据。数据有大量行(可能是 200000)。
每 1 小时后,我从其他来源获取更新数据,其中可能有一些新数据不在我的数据库中,我想将其保存在数据库中。
我从其他来源收到的数据包含更新的数据,但没有“col2”的值。我在我的 Java 代码中的列表“dataListWithSomeNewData”中获取其余数据。
现在我想将列表中的数据与 myTableDataset 中的数据进行匹配,并将 col2 从数据集中复制到列表“dataListWithSomeNewData”,然后生成新数据集并将其保存回数据库中。这样我现有的数据将被更新。我希望插入新数据,并为每个列表项插入新生成的 col2 唯一值。我如何实现这一目标?
我想避免在数据集上使用 collectAsList() 以避免内存不足,因为我可能会在内存中加载大数据。使用 collectAsList(),代码可以处理少量数据。
对此有任何建议/想法。我怎样才能做到这一点?
先感谢您