Apache spark 火花流计数

Apache spark 火花流计数,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我在Spark Streaming中有一个程序,可以检测HDFS中的传入文件,我想做的是分析每个文件,测试每个文件中是否存在两个单词,并在每个点上知道有多少文件包含这两个单词。 我想做的是: val recherche1 = lines.map(x => (x.split(":")(0),x.split(":")(1))).filter(x => x._2 == "mot1") val recherche2 = lines.map(x => (x.split(":")(

我在Spark Streaming中有一个程序,可以检测HDFS中的传入文件,我想做的是分析每个文件,测试每个文件中是否存在两个单词,并在每个点上知道有多少文件包含这两个单词。 我想做的是:

val recherche1 = lines.map(x => (x.split(":")(0),x.split(":")(1))).filter(x => x._2 == "mot1")
    val recherche2 = lines.map(x => (x.split(":")(0),x.split(":")(1))).filter(x => x._2 == "mot2")
    val n1 = recherche1.count()
    val n2 = recherche1.count()
   val p = n1.foreachRDD(rdd => {cont1 = rdd.count()
    if (cont1 > 0)
    {n2.foreachRDD(rdd => {cont2 = rdd.count()
      if (cont2 > 0)
      {number = number + 1}
      else
      {number = number}
    })}
    })
我想要的是使用变量“number”的值,因为我无法在Spark Streaming中打印它,所以我尝试将它放在HBase中,不幸的是,它不起作用,当我在Spark submit中启动脚本时,它返回错误:

adding new inputs transformations and output operations after starting a context is not supported
有人知道我做错了什么,或者能告诉我怎么做吗


提前感谢您

我通过回答我的问题更改了问题中显示的代码的整个结构:它工作了,可能此结构不适合Spark Streaming..

该错误的原因是在调用
streamingContext.start
后调用了一些
数据流
操作,因此,问题一定超出了此处显示的代码段的范围。问题的旁注:应该可以避免对输入进行两次映射以查找这两个单词。让我们先跳过当前错误,然后考虑优化此过程。@maasg当我删除此代码片段时,错误消失了,这就是为什么我认为这是问题的原因在流上下文开始之前移动此代码。这就是我要做的:ssc.start()ssc.awaitTermination()总是在脚本的末尾