各个版本的wordcount

1.shell命令 求wordcount

wc.txt内容:

hello world

hello spark

hello scala

hello hive

hello hbase regionServer

shell命令为:

 cat wc.txt|awk -F " "  'BEGIN{} {for(i=1;i<=NF;i++){wordName[$i]=$i;wc[$i]++}} END{for(j in wordName){print j":"wc[j]}}'

结果:

world:1
scala:1
spark:1
hbase:1
regionServer:1
hive:1
hello:5


 2.hive版wordcount

wordcount表中有一列 wc列

wc列的值:hello world hello spark hello scala hello java

使用到的用法:

SELECT explode(myCol) AS myNewCol FROM myTable;   #explode就是将hive一行中复杂的array或者map结构拆分成多行。

SELECT pageid, adid
FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid GROUP BY adid; #explode将复杂结构一行拆成多行,然后再用lateral view做各种聚合,adTable为拆分后的表名,adid为表名中的列

hive sql语句

select col1,count(*) from  (select explode(split(wc," ")) as col1 from wordcount) t group by col1 order by desc

3.spark core求wordcount

val conf= new SparkConf().setMaster("local[1]").setAppName("wordcoount")
val sc= new SparkContext(conf)
val lines=sc.textFile(args(0))
val wc=lines.flatmap(_.split(" ")).map(word=>(word,1)).reduceByKey(_+_)
wc.foreach(println)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值