您的位置:1010cc时时彩经典版 > 操作系统 > 1010cc时时彩经典版运用JavaScript数组动态写入HTM

1010cc时时彩经典版运用JavaScript数组动态写入HTM

发布时间:2019-11-01 21:58编辑:操作系统浏览(184)

     

    Hadoop的HDFS和MapReduce子框架主若是本着大数据文件来布署的,在小文件的管理上不唯有功能低下,并且那多少个消耗内部存款和储蓄器财富(每贰个小文件占用一个Block,每一个block的元数据都存款和储蓄在namenode的内部存款和储蓄器里)。消除办法经常是筛选三个容器,将那几个小文件组织起来统风度翩翩存款和储蓄。HDFS提供了两连串型的器皿,分别是SequenceFile和MapFile。

    // map遍历操作的首先种方法:keyset foreach
    // 选拔keyset方法通过key值获取value值---》成效低
    Set<String> keySet = map.keySet();
    for (String key : keySet) {
    Integer value = map.get(key);
    System.out.println("键:" key "值:" value);
    }

    3、展开已存在Excel文件,写入音讯

    import  xlrd

    from xlutils import copy

    data = xlrd.open_workbook('G:/221.xls',formatting_info=True)  #保证改进后的文件格式不改变

    w= copy(data)

    news =w.get_sheet(0)

    news.write(3,3,'str')

    try:

       w.save('G:/221.xls')

    except(SyntaxError,PermissionError):

       print("文件未关门!")

    1 var value = {
    2     id1: {photo:'../photo_1.jpg',title:'这是第一张图片!'},
    3     id2: {photo:'../photo_2.jpg',title:'这是第二张图片!'},
    4     id3: {photo:'../photo_3.jpg',title:'这是第三张图片!'},
    5     id4: {photo:'../photo_4.jpg',title:'这是第四张图片!'},
    6     id5: {photo:'../photo_5.jpg',title:'这是第五张图片!'},
    7     id6: {photo:'../photo_6.jpg',title:'这是第六张图片!'}
    8     };
    

    #率先种用entry

    二、MapFile

    MapFile是排序后的SequenceFile,通过观看其目录结构能够见到MapFile由两有些组成,分别是data和index。

    index作为文件的数目索引,主要记录了各类Record的key值,以致该Record在文书中的偏移地方。在MapFile被访谈的时候,索引文件会被加载到内存,通过索引映射关系可快速定位到钦赐Record所在文件地方,由此,相对SequenceFile来讲,MapFile的寻找功能是飞快的,劣势是会开支意气风发部分内部存款和储蓄器来存款和储蓄index数据。

    需注意的是,MapFile并不会把富有Record都记录到index中去,私下认可情形下每间距128条记下存款和储蓄贰个索引映射。当然,记录间隔可人为更改,通过MapFIle.Writer的setIndexInterval()方法,或涂改io.map.index.interval属性;

    别的,与SequenceFile差异的是,MapFile的KeyClass必必要落到实处WritableComparable接口,即Key值是可正如的。

    演示:MapFile读写操作

    [java] view plaincopy

    1. Configuration conf=new Configuration();  
    2. FileSystem fs=FileSystem.get(conf);  
    3. Path mapFile=new Path("mapFile.map");  
    4. //里德r内部类用于文书的读取操作  
    5. MapFile.Reader reader=new MapFile.Reader(fs,mapFile.toString(),conf);  
    6. //Writer内部类用于文书的写操作,尽管Key和Value都为Text类型  
    7. MapFile.Writer writer=new MapFile.Writer(conf,fs,mapFile.toString(),Text.class,Text.class);  
    8. //通过writer向文书档案中写入记录  
    9. writer.append(new Text("key"),new Text("value"));  
    10. IOUtils.closeStream(writer);//关闭write流  
    11. //通过reader从文书档案中读取记录  
    12. Text key=new Text();  
    13. Text value=new Text();  
    14. while(reader.next(key,value)){  
    15.     System.out.println(key);  
    16.     System.out.println(key);  
    17. }  
    18. IOUtils.closeStream(reader);//关闭read流  

    留意:使用MapFile或SequenceFile固然能够减轻HDFS中小文件的囤积难点,但也可能有确定局限性,如:
    1.文件不辅助复写操作,不可能向已存在的SequenceFile(MapFile)追加存款和储蓄记录
    2.当write流不停业的时候,未有主意构造read流。也正是在实行文书写操作的时候,该文件是不足读取的

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("孙悟空");
        list.add("唐三藏");
        list.add("猪八戒");
        list.add("沙悟净");
        String listString = list.toString();
        System.out.println(listString);
    
        Integer size = list.size();
        for (int i = 0; i < size; i  ) {
            String value1 = list.get(i);
            System.out.println(value1);
        }
        System.out.println("==========================");
    
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String value2 = iterator.next();
            System.out.println(value2);
        }
        System.out.println("==========================");
    
    
        for (String string : list) {
            System.out.println(string);
        }
    }}
    

    1、读取Excel

    import  xlrd

    data = xlrd.open_workbook('G:/221.xls')

    table = data.sheets()[0]

    print(table.row_values(1))               #获得整行的值(横)

    print(table.col_values(0))                #赢得整列的值(竖)

    nrows = table.nrows                        #收获表格行数(横)

    ncols = table.ncols                          #获得表格列数(竖)

    cell_a = table.cell(0,1).value#(竖、横)

    #遍历Excel

    for row in range(nrows):

       for col in range(ncols):

            print("(%s,%s): %s"%(row,col,table.cell(row,col).value))

     

    PS:如若急需将结果(相像的value、分化的value)写入文件,则能够写一个write方法,在历次打字与印刷写入文件,Gavin件地方参数就可以

    一、SequenceFile

    SequenceFile的蕴藏相仿于Log文件,所例外的是Log File的每条记下的是纯文本数据,而SequenceFile的每条记下是可种类化的字符数组。

    SequenceFile可因而如下API来完结新记录的增进操作:

            fileWriter.append(key,value)

    能够见到,每条记下以键值对的法子开展集体,但前提是Key和Value需具有种类化和反体系化的法力

    Hadoop预订义了有的Key Class和Value Class,他们径直或直接达成了Writable接口,满意了该成效,满含:

    Text                                等同于Java中的String
    IntWritable                   等同于Java中的Int
    BooleanWritable        等同于Java中的Boolean
            .
            .

    在存款和储蓄结构上,SequenceFile主要由多个Header后跟多条Record组成,如图所示:

    1010cc时时彩经典版 1

    Header首要含有了Key classname,Value classname,存款和储蓄压缩算法,客户自定义元数据等新闻,别的,还包涵了一些联合举行标志,用于火速稳固到记录的边际。

    每条Record以键值对的办法举行仓库储存,用来代表它的字符数组可依次剖析成:记录的尺寸、Key的长短、Key值和Value值,何况Value值的构造决意于该记录是否被减去。

    数据压缩有助于节省磁盘空间和加快网络传输,SeqeunceFile援救两种格式的数据压缩,分别是:record compression和block compression。

    record compression如上海体育地方所示,是对每条记下的value进行压缩

    block compression是将意气风发体系的record协会到一起,统风流罗曼蒂克压缩成三个block,如图所示:

    1010cc时时彩经典版 2

    block信息根本囤积了:块所蕴含的记录数、每条记下Key长度的汇集、每条记下Key值的集聚、每条记下Value长度的汇集和每条记下Value值的集中

    注:各样block的大大小小是可由此io.seqfile.compress.blocksize属性来内定的

    示例:SequenceFile读/写 操作

    [java] view plaincopy

    1. Configuration conf=new Configuration();  
    2. FileSystem fs=FileSystem.get(conf);  
    3. Path seqFile=new Path("seqFile.seq");  
    4. //Reader内部类用于文书的读取操作  
    5. SequenceFile.Reader reader=new SequenceFile.Reader(fs,seqFile,conf);  
    6. //Writer内部类用于文书的写操作,要是Key和Value都为Text类型  
    7. SequenceFile.Writer writer=new SequenceFile.Writer(fs,conf,seqFile,Text.class,Text.class);  
    8. //通过writer向文书档案中写入记录  
    9. writer.append(new Text("key"),new Text("value"));  
    10. IOUtils.closeStream(writer);//关闭write流  
    11. //通过reader从文书档案中读取记录  
    12. Text key=new Text();  
    13. Text value=new Text();  
    14. while(reader.next(key,value)){  
    15.     System.out.println(key);  
    16.     System.out.println(value);  
    17. }  
    18. IOUtils.closeStream(reader);//关闭read流  

    // map遍历操作的第三种艺术:map.entrySet() 迭代器
    Iterator<Entry<String, Integer>> entrySet = map.entrySet().iterator();
    while (entrySet.hasNext()) {
    Entry<String, Integer> entry = entrySet.next();
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println("键:" key " " "值:" value);
    }
    }
    享有的主意都以卸载main方法之中的。

    2、写入新Excel文件

    import   xlwt

    wb = xlwt.Workbook()                 # 创制 xls 文件对象

    sh = wb.add_sheet('A Test Sheet')       # 新添叁个表单

    # 按职责加多数据

    sh.write(0,0,1234.56)

    sh.write(1,0,8888)

    sh.write(2,0,'hello')

    sh.write(2,1,'world')

    wb.save('example.xls')  # 保存文件

     

    本文由1010cc时时彩经典版发布于操作系统,转载请注明出处:1010cc时时彩经典版运用JavaScript数组动态写入HTM

    关键词: