我在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
有谁知道我做错了什么或者能告诉我怎么做?
提前谢谢
答案 0 :(得分:0)
我通过我的问题答案更改了问题中显示的代码的整个结构:filter the lines by two words Spark Streaming并且它有效,也许这个结构不适合Spark Streaming ..