我在for循环中运行一个完成处理程序,所以是一个循环中的异步操作...
这就是我加入from collections import Counter
count = rdd.combineByKey(lambda v: Counter(v),
lambda c,v: c + Counter(v),
lambda c1,c2: c1 + c2)
print count #[('20170901', Counter({'TX': 3, 'CA': 1})), ('20170902', Counter({'CA': 2, 'TX': 2}))]
的原因:
DispatchGroups()
嗯,文件路径存在,但我没有在控制台中获得任何打印,但我需要在每次异步操作完成后得到通知。有人可以帮帮我吗?
答案 0 :(得分:0)
我 ASSUMING 您正在上传到Firebase。
要尝试的事情:
将let _ = ref.putFile(from: url...
更改为let uploadObj = ref.putFile(from: url...
然后,作为for循环的最后一行执行此操作:uploadObj.resume()
。
如果这不起作用,那么我最好的猜测是Firebase的框架无法处理多个同时上传。解决方案是等待每个文件完成上传,然后上传下一个文件。
您也可以尝试使用代码,但只能上传1个文件。如果可行,则问题很可能是并发上载问题。尝试用2,然后继续,如果它没有失败。如果它最终失败,那么同时性肯定是问题。
如果您坚持尝试同时上传,请转到Google's documentation on this,并实施其示例以监控上传。然后,您将能够确切了解每次上传的内容。
这是一个更新:
This post的答案还建议一次上传一个。