博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java生成-zipf分布的数据集(自定义倾斜度,用作spark data skew测试)
阅读量:6092 次
发布时间:2019-06-20

本文共 2299 字,大约阅读时间需要 7 分钟。

1.代码

import java.io.Serializable;import java.util.NavigableMap;import java.util.Random;import java.util.TreeMap;public class Zifp_gen implements Serializable {    private Random random = new Random(0);    NavigableMap
map; private static final double Constant = 1.0; public Zifp_gen(int nums, double skewness) { // create the TreeMap map = computeMap(nums, skewness); } //size为rank个数,skew为数据倾斜程度, 取值为0表示数据无倾斜,取值越大倾斜程度越高 private static NavigableMap
computeMap( int size, double skew) { NavigableMap
map = new TreeMap
(); //总频率 double div = 0; //对每个rank,计算对应的词频,计算总词频 for (int i = 1; i <= size; i++) { //the frequency in position i div += (Constant / Math.pow(i, skew)); } //计算每个rank对应的y值,所以靠前rank的y值区间远比后面rank的y值区间大 double sum = 0; for (int i = 1; i <= size; i++) { double p = (Constant / Math.pow(i, skew)) / div; sum += p; map.put(sum, i - 1); } return map; }// public int next() { // [1,n]// double value = random.nextDouble();// //找最近y值对应的rank// return map.ceilingEntry(value).getValue() + 1;// }}

2.test

import java.util.NavigableMap; public class Test {    public static void main(String args[]){        Zifp_gen z1=new Zifp_gen(100,1.0);        for (NavigableMap.Entry
entry : z1.map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } } }

 原Zipf齐夫分布及Java实现

 

zipf数据写入外部文本

public class Test {    public static void main(String args[]) throws IOException{        Zifp_gen z1=new Zifp_gen(100,0.5);        PrintWriter pw=new PrintWriter(new FileWriter("F:\\zipf_100_0.5.txt"));        for (NavigableMap.Entry
entry : z1.map.entrySet()) { // System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); // String str="Key = " + entry.getKey() + ", Value = " + entry.getValue(); String str= entry.getKey() + " " ; pw.println(str); } pw.close(); } }

 

转载于:https://www.cnblogs.com/moonlightml/p/9982240.html

你可能感兴趣的文章
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>
CentOS6.4关闭触控板
查看>>
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>
修改Windows远程终端默认端口,让服务器更安全
查看>>
扩展器必须,SAS 2.0未必(SAS挺进中端存储系统之三)
查看>>
Eclipse遇到Initializing Java Tooling解决办法
查看>>
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
C#数据采集类
查看>>