object abc {
def main(args: Array[String]) = {
m()
}
def m() {
val spark = SparkSession.builder.appName("ola").master("local[*]").getOrCreate
val sc = spark.sparkContext
val ssc = new StreamingContext(sc, Seconds(5))
var cnt = sc.longAccumulator("cnt")
cnt.value
import spark.implicits._
val x = ssc.textFileStream("file:///home/xyz/folderone/")
x.foreachRDD{ rddx =>
val x2 = rddx.map { xxx =>
cnt.add(1)
xxx
}
x2.toDF.write.format("text").mode("overwrite").save("file:///home/xyz/oparekta")
}
println(s"value of count ${cnt.value}")
ssc.start()
ssc.awaitTermination()
}
以上代码是处理给定文件夹路径中的文件,但是代码中存在某种问题,导致输出文件为空,这可能是什么原因?
答案 0 :(得分:0)
尝试执行以下操作以避免处理空数据:
...
QS.foreachRDD(q => {
if(!q.isEmpty) {
...
此外,需要考虑附加的覆盖。不确定您的用例,可能是一个疏忽。