大数据计算文件与Java计算文件的区别【重点!!!】
package com.njbdqn;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
/*
*在Java里面就是用开多线程的方式:cpu的速度快,正常情况下,
* 就可以在很短的时间内执行多个文件夹
* 给人感觉是同时执行多个文件,同时执行(时间片轮转的方式)
* 只要速度足够快,就可以定义为并行执行文件(并发运行)抢时间片。
* cpu的速度是有限度的,要适当执行。
*
*
* 在大数据里面就是分配多个机器,把数据分割成很多份,然后分配到堕胎计算机上面
* 进程出入的方式
*
* */
// I/O流读写
public class MyDemo {
public static void main(String[] args) throws Exception{//抛出异常
//线性结构两个(1.数组(ArrayList) 2.列表)
//Set<>底下也是Map<>
Map<String,Integer> word = new HashMap<String, Integer>();
BufferedReader br = new BufferedReader(new FileReader("d:/abc.txt"));
String line = br.readLine();
while (line!=null){
//System.out.println(line);
String [] wds = line.split("");
//增强型for循环
for (String wd:wds){
//分为两种情况 1.存在
if (word.containsKey(wd)){
word.put(wd,word.get(wd)+1);
} else {
//2.不存在
word.put(wd,1);
}
}
line = br.readLine();
}
//抛出异常
br.close();
//入(那麽大)表达式
//哈希Map是键值队,两个值。一个值就不需要括号了,就一个值就行了。
word.forEach((k,v)->{
System.out.println(k+":"+v);
});
/*
* 表 wds
* word列
*
* hello
* cm
* hello
* woeld
* select word,count(*) from wds group by word
*/
}
}