我有一个Spark流媒体工作。我想将过滤器应用于我的输入RDD。
我想在每次火花流批处理期间每次从Hbase动态获取过滤条件。
我如何实现这一目标?
我可以使用Map分区创建一次连接对象。
但是在火花过滤器中我如何实现同样的目标?
答案 0 :(得分:0)
我认为,正确的方法是编写自己的过滤函数(伪代码):
DStream<Integer> intDstream= someIntegerIntoDStream;
intDstream.foreachPartition{
create HBase connection here if you need it for a batch
while(arg0.hasNext()){ //here you have an iterator
Integer current = arg0.next();
create HBase connection here if you need it for each element
//Here is your filter function:
if( current meets your condition )
arg0.remove();
所以会发生的情况是,您正在执行程序上运行并手动选择每个元素,对其应用条件并在符合条件时将其删除。