小抄
序
小抄是所有有用的知识、规范的集散地
规范
How to Write a Good Git Commit Message
正则
正则表达式测试网站 regular expression 101
小抄是所有有用的知识、规范的集散地
How to Write a Good Git Commit Message
正则表达式测试网站 regular expression 101
这是一个由三部分组成的系列文章,翻译而来,原文出处请戳。 将提供对Go语言调度器背后的机制和语义的理解。这是第三篇,这篇文章将着重于并发。
当我在解决一个问题,特别是新问题的时候,我并不会一开始就考虑到并发是否是一个好的选择。我最开始会用串行的方式并保证能够正常工作。然后经过可读性和技术评审,我会开始思考如果用并发的方式是否合理且可实践的。有些时候并发毫无疑问是一个好的选择,有的时候却又不太确定。
最近经历了一个流数据处理的项目,数据源是kafka,需要聚合并分组时间段内的数据,然后基于聚合好的数据集来做分析, 最后再将计算结果数据。经过一番调研,最终选择了spark sructured streaming。因为之前没接触过spark,调研也花了好一番功夫,google了好久,关于spark structured streaming的中Group、Window和UDF基本都是分开使用或讨论。将这三者结合起来的案例少之又少,我也是费了好一番功夫才弄出来(可能是鄙人太菜了,大雾)。 鉴于此,我把项目中的关于Group + Window + UDF的使用,抽了一个demo出来,作成此文。