【问题标题】:Spark Streaming - Filter dynamicallySpark Streaming - 动态过滤
【发布时间】:2016-07-21 20:48:37
【问题描述】:

我有一个 Spark 流式传输作业。我想对我的输入 RDD 应用过滤器。

我想在每个 spark 流批处理期间每次从 Hbase 动态获取过滤条件。

我如何做到这一点?

我可以使用 Map 分区创建连接对象一次。

但是使用火花过滤器我如何实现相同的目标?

【问题讨论】:

  • 根据您的过滤条件,您可以使用join 来实现它。您必须给出一个更完整的示例来说明您正在尝试做什么,但如果连接的左侧是您的 Spark Stream,则右侧将是一组标准。如果没有任何条件适用,则连接不会产生任何行——它会过滤它们。

标签: filter apache-spark streaming dynamically-generated


【解决方案1】:

我认为,正确的做法是编写自己的过滤器函数(伪代码):

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();

所以发生的情况是,您在执行程序上运行并且您手动选择每个元素,对其应用条件并在满足您的条件时将其删除。

【讨论】:

    猜你喜欢
    • 2016-12-13
    • 2015-09-12
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2018-10-12
    • 2015-03-31
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多