使用hash方法切割文件
如果有大型数据文件(如每行为url或者ip或者单词等的),以G为单位的,处理的时候需先切分。普通切分方法直接根据数据条数切分,得到的每个文件大小相近。
但是有时需要将相同数据放到相同文件中。可以使用hash切分法。
public class Test {
	static int HASHLEN = 1000;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String words [] = {"yes" ,"an" ,"go"};
		for(String word:words){
			int temp = hash(word.toCharArray());
			System.out.println(temp);
		}
	}
	public static int hash(char[] word) {
	    int index = 0;
	    int i=0;
	    while(i<word.length) {
	        index += index * 31 + word[i];
	        i++;
	    }
	    return index % HASHLEN;
	}
}
相同单词一定得到相同的返回值,不同单词也可能得到相同返回值
使用hash方法切割文件的更多相关文章
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
		
JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...
 - 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:非hash方法
		
http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
 - 使用awk按照行数切割文件
		
最近在做一个事情,需要将一个文本文件按照行数进行切割,然后用了,awk的方法,感觉很好用, 记录一下. 脚本如下: #!/bin/bash ## 文件效果: 根据行数来切割文件 ## 参数1为要切割的 ...
 - __del__,item系列 ,hash方法,__eq__,
		
# 构造方法 申请一个空间# 析构方法 释放一个空间 # 某个对象借用了操作系统的资源,还要通过析构方法归还回去:文件资源 网络资源 # 垃圾回收机制 class A: def __del__(sel ...
 - shell总结:读取文件、参数、if、分割字符串、数组长度、空文件、变量赋值、多进程、按行切割文件、查看线程
		
Reference: http://saiyaren.iteye.com/blog/1943207 1. Shell 读取文件和写文件 for line in $(<top30000. ...
 - Java中hashCode()方法以及HashMap()中hash()方法
		
Java的Object类中有一个hashCode()方法: public final native Class<?> getClass(); public native int hashC ...
 - [Android Pro]    关于inputStream.available()方法获取文件的总大小
		
reference to :http://hold-on.iteye.com/blog/1017449 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调 ...
 - OC方法和文件编译
		
OC方法和文件编译 一.OC方法 (一)对象方法 (1)对象方法以-开头如 -(void)xx; (2)对象方法只能又对象来调用 (3)对象方法中可以访问当前对象的成员变量 (4)调用格式 [对象 ...
 - ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题[转]
		
准备工作: 在vs工具栏中找到NuGet 下载DotNetZip 现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. ? 1 2 3 4 5 6 7 8 9 10 11 ...
 
随机推荐
- hadoop安装zookeeper-3.4.12
			
在安装hbase的时候,需要安装zookeeper,当然也可以用hbase自己管理的zookeeper,在这里我们独立安装zookeeper-3.4.12. 下载地址:https://mirrors. ...
 - oracle重置dba用户密码
			
1.进入sqlplus里面: [oracle@master ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Tue ...
 - 16、Nginx Rewrite重写
			
1.Rewrite基本概述 1.1.什么是rewrite Rewrite主要实现url地址重写, 以及地址重定向,就是将用户请求web服务器的地址重新定向到其他URL的过程. 1.2.Rewrite使 ...
 - 12、Nginx代理缓存服务
			
通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后端压力,提高网站并发延时 1.缓存常见类型 服务端缓存 代理缓存, 获取服务端内容进行缓存 客户端浏览器缓存 Nginx代理缓存原理 ...
 - 实验吧flag整理
			
奇怪的短信 flagissimple 围在栅栏里的爱ILOVESHIYANBAR. 古典密码flag:CTF{COULDYOUEXCHANGETHEINFORMATION} The Flash-14F ...
 - deep_learning_Function_numpy_newaxis参数
			
np.newaxis的作用就是在这一位置增加一个一维,这一位置指的是np.newaxis所在的位置,比较抽象,需要配合例子理解. x1 = np.array([1, 2, 3, 4, 5]) # th ...
 - maven中使用jetty插件
			
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin ...
 - 浙大数据结构课后习题 练习三 7-4 List Leaves (25 分)
			
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...
 - 前端面试题-CSS优先级
			
一.选择器优先级 浏览器通过优先级来判断哪一些属性值与一个元素最为相关,从而在该元素上应用这些属性值.优先级是基于不同种类选择器组成的匹配规则. 二.优先级计算 优先级就是分配给指定的CSS声明的一个 ...
 - buuctf@[OGeek2019]babyrop
			
#!/usr/bin/python #coding:utf-8 from pwn import * #context.log_level = 'debug' io = process('./pwn', ...