zoukankan      html  css  js  c++  java
  • 数据清洗

    数据清洗:
    过滤脏数据,解析字段结构化,数据加上一些默认值,给数据添加某些字段,把数据分类,
    给数据脱敏,给数据加密,修改数据的存储结构...

    可以用什么技术?

    mr hive(udf) spark core

    如何选择 ?

    mr 好处稳定性高,如果数据量非常的大,考虑用mr做清洗

    hive 的udf 就是mr的maptask,也不会运行reducetask 

    spark core : 速度快,基于内存,如果数据量,可能导致内存不够,程序不稳定

    mr: mapreduce 程序,map程序,一般来说不需要写reduce 

    map程序:

     setup: maptask执行之前,先执行一个方法,一般来说声明一些变量,给这些变量赋值,所谓的初始化

      map :  

    处理数据的逻辑,map方法执行很多次,每次的执行的是一个偏移量的数据,(默认情况下这个偏移量是一行数据,但是如果你的数据,不能使用这种默认textinputformat,一般来说,hadoop会其他的inputformat满足一些常见数据需求,但是如果你处理的数据很不常见,万一hadoop没有,需要自定义inputformat,百度有没有类似的,
    sqoop本质是自定义了很多 inputformat,outputformat),对于日志文件来说,数据是一行一行的,偏移量就是一行数据的长度,最终把所有数据执行完之后,map程序就不再执行

    cleanup:map方法完全执行完毕之后,最后执行一次,做一些收尾的工作,例如关闭一些对象,关闭一些连接...

    reduce程序:

    setup: 同上
    reduce : 执行很多次,每次执行 k -》 values,相同key的所有values,一个reduce 有多个key值,就执行多少次
    cleanup: 同上

    案例:用mr做数据清洗
    数据清洗,是大数据开发里面最简单的开发,如果是用java写,会用java操作字符串,会写if else (第一个月),比较麻烦

    讲解一个案例:用mr做数据清洗
    数据清洗,是大数据开发里面最简单的开发,如果是用java写,会用java操作字符串,会写if else (第一个月),比较麻烦

    stringBuffer: 线程安全
    stringBuilder : 线程不安全

    经典案例 ,卖票案例,指的是操作一些共享变量,可能会出现线程安全的问题 

    maptask里面 ,单个task并不存在这个操作共享变量的问题,不会出现线程不安全的问题,更推荐使用stringBuilder  

    String:适用于少量的字符串操作的情况
    tringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
    StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

  • 相关阅读:
    【转】[fix] Wireshark error: There are no interfaces on which a capture can be done. on Mac OS X
    【转载】Linux 文件系统的目录结构
    postgreSQL使用
    [转载] Linux启动过程详解-《别怕Linux编程》之八
    冒泡排序
    java值类型和引用类型
    冒泡排序法与二分查找法
    关系型数据库
    SQList的建表并添加数据练习
    数据存储——SQLite数据库存储
  • 原文地址:https://www.cnblogs.com/mrr19990327/p/14204980.html
Copyright © 2011-2022 走看看