欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql分組查詢 條數(shù),為什么程序員工作后就喜歡用stream流

張吉惟2年前30瀏覽0評論
mysql分組查詢 條數(shù),為什么程序員工作后就喜歡用stream流?

閣下說的應該是集合類的流式處理,而不是文件流吧!

1.流式處理從思維的角度來說那就是通暢,可以不需要思維阻塞地一直寫才去,有一種看爽文的感覺,如果沒有流式處理,那么就需要不停地打斷思路遍歷集合進行處理,代碼是又丑又很難看懂!

2.最喜歡流式處理的應該是數(shù)據(jù)開發(fā)類的程序員,很多數(shù)據(jù)的處理工作很復雜,分步驟,需要不同的處理邏輯,適用流式處理就可以把每一個步驟當成流的一個操作節(jié)點處理,方便!

舉例:

1.如果寫過mapreduce的都知道,常規(guī)寫法可能需要寫一個循環(huán),超級復雜,如果使用流就可以寫成:(sparkstreaming舉例:)

# 統(tǒng)計詞頻

counts = lines.map(lambda x:x.strip())\ #1.去除首位空格 .flatMap(lambda x: x.split(' '))\ #2.根據(jù)空格分出每一個詞 .filter(lambda x:x not in stop_words) \ #3.過濾掉停用詞 .map(lambda x: (x, 1)) \ #4.給每一個詞標記1 .reduceByKey(add) #5.統(tǒng)計求和

.sortBy(lambda x:-x[1]) # #排序

通過一個流式的處理就簡單完成了

1.java的一個數(shù)據(jù)處理流程舉例

List<Entity> entityList = xxxx;

MapFrame<Object,Double> groups = ListFrame.fromList(entityList )

.handle("value=format(value,2)") //1.列表實體的value保留兩位小數(shù)

.handle(entity->entity.getName()==null,"name=''") //2.name為空變?yōu)?"

.handle(entity->entity.getValue()==null,"value=0","value=value+2") //3.value不為空+2

.handle("name=replace(name,'#','')") //4.替換#

.handle("percent=double(value)/"+sum) //5.計算百分比

.groupBy("name").sum("percent"); //6.分組統(tǒng)計

上面的過程在不寫for循環(huán)的條件下就流式處理完了,僅僅從寫那一刻的感覺來說就很通暢

再見