zoukankan      html  css  js  c++  java
  • 其他

    
    
    select col1,col2,concat_ws(',',collect_set(col3))
    from tmp_bsf_test
    group by col1,col2;
    
    create table tmp_bsf_test1
    (
    col1 string,
    col2 string,
    col3 string
    )
    row format delimited fields terminated by '	'
    stored as textfile;
    
    
    
    
    select col1, col2, col5
    from tmp_bsf_test a
    lateral  view explode(split(col3,','))  b AS col5
    
    lateral view explode(split(co12,',')) b as col5
    
    
    列传行
    select col1,concat_ws(",",collect(clo2)) a from table1; 
    //行传列
    select 
    lateral view exlpode(split(clo3,',')) b as  clo
    
    
    
    
    
    chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files...
    最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
    属性。
       + :在原有参数设定基础上,追加参数。
      - :在原有参数设定基础上,移除参数。
    
      = :更新为指定参数设定。
    
      A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
    
      S:硬盘I/O同步选项,功能类似sync。
    
      a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文 件安全,只有root才能设定这个属性。
    
      c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
    
      d:即no dump,设定文件不能成为dump程序的备份目标。
    
      i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
    
       j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
    
      s:保密性地删除文件或目录,即硬盘空间被全部收回。
    
      u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.
    
    各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
    
    应用实例:
    1、用chattr命令防止系统中某个关键文件被修改
    
    # chattr +i /etc/fstab 
    
    然后试一下rm mv rename等命令操作于该文件,都是得到Operation not permitted 的结果
    
    
    2、让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作
    # chattr +a /data1/user_act.log
    //解除锁定
    sudo chattr -V -a file
    chattr 
    
    
    
    
    完全二叉树 :节点是连续的 一般二叉树: 未连续 中间没有使用指定占位 前序 从根节点开始先遍历根节点左边的(做节点有节点),在遍历右边的 根 左 右 中树: 左 根 右 后序: 左 右 根 public void preIter(node){ sout(node) preIter(node) preIter(node) } 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址, 在数据十分庞大的时候,索引可以大大加快查询的速度, 这是因为使用索引后可以不用扫描全表来定位某行的数据, 而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。” 前面已经提到,汇总后的数据量通常比源数据要少得多。而为了提升运算速度,我们会增加Reducer的数量,Hive本身也会做类似优化——Reducer数量等于源数据的量除以hive.exec.reducers.bytes.per.reducer所配置的量(默认1G)。Reducer数量的增加也即意味着结果文件的增加,从而产生小文件的问题。 解决小文件的问题可以从两个方向入手: 1. 输入合并。即在Map前合并小文件 2. 输出合并。即在输出结果的时候合并小文件 配置Map输入合并 -- 每个Map最大输入大小,决定合并后的文件数 set mapred.max.split.size=256000000; -- 一个节点上split的至少的大小 ,决定了多个data node上的文件是否需要合并 set mapred.min.split.size.per.node=100000000; -- 一个交换机下split的至少的大小,决定了多个交换机上的文件是否需要合并 set mapred.min.split.size.per.rack=100000000; -- 执行Map前进行小文件合并 set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; 配置Hive结果合并 我们可以通过一些配置项来使Hive在执行结束后对结果文件进行合并: hive.merge.mapfiles 在map-only job后合并文件,默认true hive.merge.mapredfiles 在map-reduce job后合并文件,默认false hive.merge.size.per.task 合并后每个文件的大小,默认256000000 hive.merge.smallfiles.avgsize 平均文件大小,是决定是否执行合并操作的阈值,默认16000000 Hive在对结果文件进行合并时会执行一个额外的map-only脚本,mapper的数量是文件总大小除以size.per.task参数所得的值,触发合并的条件是: 根据查询类型不同,相应的mapfiles/mapredfiles参数需要打开; 结果文件的平均大小需要大于avgsize参数的值。
  • 相关阅读:
    html数据属性 data-*
    切片,索引,基本数据类型
    计算机是什么
    使用CSS3和jQuery可伸缩的搜索条
    一个按钮判断两次事件,切换图标
    Javascript(jQuery)中绑定页面上所有按钮点击事件的几种方式
    jq向上无缝滚动
    js避免全局污染
    闭包:让外部函数能访问函数内的变量,让局部变量长期贮存在内存中
    position绝对剧中
  • 原文地址:https://www.cnblogs.com/hejunhong/p/10645850.html
Copyright © 2011-2022 走看看