spark结构化流数据过滤phoenix表

dtcbnfnu  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(189)

我正在构建一个spark结构化的流媒体工作,它可以实现以下功能,
流媒体源,

val small_df = spark.readStream
  .format("kafka")
  .load()

small_df.createOrReplaceTempView("small_df")

Dataframe-Phoenix负载

val phoenixDF = spark.read.format("org.apache.phoenix.spark")
  .option("table", "my_table")
  .option("zkUrl", "zk")
  .load()

phoenixDF.createOrReplaceTempView("phoenix_tbl")

然后,sparksql语句(在主键上)与另一个小Dataframe连接以过滤记录。

val filteredDF = spark.sql("select phoenix_data.* from small_df join phoenix_tbl on small_df.id = phoenix_tbl.id)

观察:
spark做全表扫描和范围扫描 joins 以及 filter 分别地
small_df 是我无法使用的流式数据集 filter 依靠 join 从phoenix表中筛选记录,但最终以全表扫描结束,这是不可行的。
有关要求的更多详细信息
在这种情况下,如何执行范围扫描?
我做的和这里讨论的一样,但唯一的区别是我的 small_df 是流式数据集。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题