AWK使用实例

有这么些记录,大概2000W条:

1909290281,aa,aa,,&aa.,aa,1909290281,11,13,8,,,tp2.sinaimg.cn/1909290281/50/0/1,0,,"2632861870,1728104535,1894638220,1774978073,1839047245,2033895032,1769871333,1909308537,1909363617"

由于导入hive后是根据逗号进行字段分割的,而双引号内的数据不应该给分割,因此需要对双引号内的逗号进行替换。

使用AWK脚本为:

BEGIN{
  print "start weibo analyse!"
  FS="\""
}
{
  result=""
  for(i=1;i<NF;i++){
    if( i%2 == 0 ){
      gsub(",",";",$i)
      result=result"\""$i"\""
    }else{
      result=result$i
    }

  }
  print result
}
EDN{
  print "end weibo analyse!"
}

这样能正确处理数据,但是效率太差。

posted @ 2012-11-08 14:44  晓锋童鞋  阅读(142)  评论(0编辑  收藏  举报