可以加入cassandra表得到pushdown吗?

tktrz96b  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(175)

我用的是结构化流。我需要左键联接一个巨大的(数十亿行)cassandra表,以了解micro batch中的源数据是新的还是存在于id col中。如果我执行以下操作:

val src = spark.read.cassandraFormat("src", "ks").load().select("id")
val query= some_dataset
      .join(src, expr("src.id=some_dataset.id"), joinType = "leftOuter")
      .withColumn("flag", expr("case when src.id is null then 0 else 1 end"))
      .writeStream
      .outputMode("update")
      .foreach(...)
      .start

cassandra是否可以按下左连接并在源delta中查找连接列值?有没有办法判断是否发生了推倒?
谢谢

0kjbasz6

0kjbasz61#

不在spark cassandra连接器的开源版本中。在dse分析中有一个对dse direct join的支持,所以如果您使用datastax enterprise,您将得到它。如果您使用的是oss连接器,则仅限于RDDAPI。
更新,2020年5月:自SCC2.5.0以来,支持Dataframe上的优化连接以及其他商业功能。有关详细信息,请参阅此博客文章。

相关问题