var hv=sc.textFile("hdfs://192.168.15.30:8020/user/hive/warehouse/ycapp.db/appindex") var hivedata=hv.map(_.split("\t")).map(e => ( e(1), e(2),e(0).toInt)) (String, String, String) = (9,2017-07-26,all_posts) -- 訪問第一行的第一列元素 hivedata.first()._1 -- 把三列數據中的第一列篩選出來 var hivedata1=hivedata.map(res=>res._1) -- 第一列數據的排重數量 hivedata1.distinct().count() -- 把第一列數據轉化成鍵值對 var hivedata1_map= hivedata1.map(res=>(res,1)) -- 統計第一列數據的頻數 var hivedata1_mapv=hivedata1_map.reduceByKey((x,y)=>x+y) -- 取出數據中的第一列和第三列 var hivedata2=hivedata.map(res=>(res._1,res._3)) -- 統計第三列數據在第一列分組中的求和 ar hivedata2_mv =hivedata2.reduceByKey((x,y)=>x+y) -- 統計多個key的groupby操作 var hivedata3=hivedata.map(res=>(res._1+res._2,res._3)) var hivedata3_mv=hivedata3.reduceByKey((x,y)=>x+y) var hivedata3_mv2=hivedata3_mv.map(res=>(res._1.substring(0,10),res._1.substring(10),res._2))
