1. package com.hadoop.hdfs;
  2.  
  3. import org.apache.hadoop.yarn.webapp.hamlet.Hamlet;
  4. import org.junit.Test;
  5.  
  6. import java.io.*;
  7. import java.util.HashMap;
  8. import java.util.HashSet;
  9.  
  10. public class Suanfa1 {
  11. @Test
  12. public void a1() throws IOException {
  13. BufferedReader bufferedReader = new BufferedReader(new FileReader("D:/aa.txt"));
  14. // BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D://"))
  15. String str1 = "";
  16. while ((str1 = bufferedReader.readLine())!=null){
  17. int i = (int) (hashCode(str1)%1000);
  18. BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D://aa"+String.valueOf(i)+".txt"));
  19. bufferedWriter.write(str1);
  20. bufferedWriter.close();
  21. System.out.println(i);
  22. }
  23. bufferedReader.close();
  24. }
  25.  
  26. public void a2() throws IOException {
  27. BufferedReader bufferedReader = new BufferedReader(new FileReader("D:/bb.txt"));
  28. // BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D://"))
  29. String str1 = "";
  30. while ((str1 = bufferedReader.readLine())!=null){
  31. int i = (int) (hashCode(str1)%1000);
  32. BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D://bb"+String.valueOf(i)+".txt"));
  33. bufferedWriter.write(str1);
  34. bufferedWriter.close();
  35. }
  36. bufferedReader.close();
  37. }
  38.  
  39. public long hashCode(String str) {
  40. long h = 0;
  41. if (h == 0) {
  42. int off = 0;
  43. char val[] = str.toCharArray();
  44. long len = str.length();
  45. for (long i = 0; i < len; i++) {
  46. h = 31 * h + val[off++];
  47. }
  48. }
  49. return h;
  50. }
  51.  
  52. @Test
  53. public void a3() throws IOException {
  54. a1();
  55. a2();
  56. for (int i = 0; i < 1000; i++) {
  57. BufferedReader bufferedReader1 = new BufferedReader(new FileReader("D://aa"+String.valueOf(i)+".txt"));
  58. BufferedReader bufferedReader2 = new BufferedReader(new FileReader("D://bb"+String.valueOf(i)+".txt"));
  59. HashSet set = new HashSet();
  60. String input1 = "";
  61. while ((input1 = bufferedReader1.readLine())!=null){
  62. set.add(hashCode(bufferedReader1.readLine()));
  63. }
  64.  
  65. String input2 = "";
  66. while ((input2 = bufferedReader2.readLine())!=null){
  67. if (set.contains(hashCode(input2))){
  68. System.out.println(input2);
  69. }
  70. }
  71. }
  72.  
  73. }
  74. }

给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?的更多相关文章

  1. 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?

    给定a.b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a.b文件共同的url? 可以估计每个文件的大小为5G*64=300G,远大于4G.所以不可能将其完全加载到 ...

  2. 面试- 阿里-. 大数据题目- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

    假如每个url大小为10bytes,那么可以估计每个文件的大小为50G×64=320G,远远大于内存限制的4G,所以不可能将其完全加载到内存中处理,可以采用分治的思想来解决. Step1:遍历文件a, ...

  3. 海量数据处理面试题(1) 找出两文件种包含的相同的url

    问题:给定a.b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a.b文件共同的url? 分析:50亿个url,每个url64字节,就是320G,显然是无法一次读入内存 ...

  4. 查找mysql数据库文件的存放位置

    在mysql数据库中,有时候并不是很容易找出mysql数据库文件data的存放位置吗,这时就可以使用mysql自带的命令行工具进行查询. 具体命令如下:show variables like '%da ...

  5. BD面试题1-两个大文件中找出公共记录[转载]

    转自:https://blog.csdn.net/tiankong_/article/details/77234726#commentBox 1.题目 给定a.b两个文件,各存放50亿个url,每个u ...

  6. 【Linux】找出文件之间的差异

    使用命令comm可以找出2个文件之间的差异 现在有文件如下: Linux:/qinys # cat A.txt apple lemon onion orange pear Linux:/qinys # ...

  7. 如何在 Linux 中找出最近或今天被修改的文件

    1. 使用 ls 命令,只列出你的 home 文件夹中今天的文件. ls -al --time-style=+%D | grep `date +%D` 其中: -a- 列出所有文件,包括隐藏文件 -l ...

  8. 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素

    /**  * 功能:给定一个排序后的数组.包括n个整数.但这个数组已被旋转过多次,次数不详.找出数组中的某个元素.  * 能够假定数组元素原先是按从小到大的顺序排列的.  */ /** * 思路:数组 ...

  9. ORACLE中如何找出大表分布在哪些数据文件中?

    ORACLE中如何找出大表分布在哪些数据文件中?   在ORACLE数据中,我们能否找出一个大表的段对象分布在哪些数据文件中呢? 答案是可以,我们可以用下面脚本来找出对应表的区.段分别位于哪些数据文件 ...

随机推荐

  1. OpenFOAM设置监测点(探针)

    首先准备好我们自己的平常算例文件,本次我们以圆柱绕流的算例来说明用法 然后我们在/opt/openfoam4/etc/caseDicts/postProcessing/probes文件夹下找到prob ...

  2. sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME---解释比较详细

            一个查询需要的CPU.IO资源越多,查询运行的速度就越慢,因此,描述查询性能调节任务的另一种方式是,应该以一种使用更少的CPU.IO资源的方式重写查询命令,如果能够以这样一种方式完成查 ...

  3. python中的__init__方法

    init()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是init()参数值可以有多种形式. __init__方法使用 ...

  4. file_put_contents 和php://input 实现存储数据进图片中

    <?php /** *Recieve p_w_picpath data **/ error_reporting(E_ALL); function get_contents() { $xmlstr ...

  5. 微信小程序左滑删除未操作有复位效果

    1.wxml <!--pages/test/test.wxml--> <view class="page"> <movable-area class= ...

  6. Nfs固定端口 nfs 端口公网映射

  7. 微信小程序的z-index在苹果ios无效

    1.在微信开发者工具可以正常显示 2.在安卓真机手机可以正常显示 3.在ios手机真机无法正常显示 原因:父级view的css属性有 position: fixed; ,把它注释掉即可

  8. CopyOnWrite 思想及在 Java 并发包中的具体体现

    读多写少的场景下引发的问题? 假设现在我们的内存里有一个 ArrayList,这个 ArrayList 默认情况下肯定是线程不安全的,要是多个线程并发读和写这个 ArrayList 可能会有问题. 那 ...

  9. Tosca :配置环境参数

    # 跟Modules TestCases并列 ,右键创建 #再右键创建配置(结构自己安排) #再创建配置参数 #使用配置参数 #引用配置的环境参数

  10. flutter 中的搜索条实现

    import 'package:flutter/material.dart'; import 'package:flutter_app/SearchBarDemo.dart'; void main() ...