我正在开发一个应用程序,每隔30秒(也可能是5秒),一些文件将被丢弃在文件系统中。我必须阅读它解析它并将一些记录推送到REDIS。
在每个文件中,所有记录都是独立的,我没有进行任何需要updateStateByKey
的计算。
我的问题是,如果由于某些问题(例如:REDIS连接问题,文件中的数据问题等)某些文件未完全处理我想再次处理(比如n次)文件并且还要跟踪文件已经处理完毕。
出于测试目的,我正在从本地文件夹中读取。此外,我不确定如何得出结论,一个文件已完全处理并将其标记为已完成(即写入文本文件或db,此文件已处理)
val lines = ssc.textFileStream("E:\\SampleData\\GG")
val words = lines.map(x=>x.split("_"))
words.foreachRDD(
x=> {
x.foreach(
x => {
var jedis = jPool.getResource();
try{
i=i+1
jedis.set("x"+i+"__"+x(0)+"__"+x(1), x(2))
}finally{
jedis.close()
}
}
)
}
)
答案 0 :(得分:0)