zoukankan      html  css  js  c++  java
  • (五)阅读推荐

    1.粗略查询

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.KeyValue;
    import org.apache.hadoop.hbase.MasterNotRunningException;
    import org.apache.hadoop.hbase.ZooKeeperConnectionException;
    import org.apache.hadoop.hbase.client.Delete;
    import org.apache.hadoop.hbase.client.Get;
    import org.apache.hadoop.hbase.client.HBaseAdmin;
    import org.apache.hadoop.hbase.client.HTable;
    import org.apache.hadoop.hbase.client.HTablePool;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.client.Result;
    import org.apache.hadoop.hbase.client.ResultScanner;
    import org.apache.hadoop.hbase.client.Scan;
    import org.apache.hadoop.hbase.filter.Filter;
    import org.apache.hadoop.hbase.filter.FilterList;
    import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
    import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.netlib.blas.Srot;
    import shapeless.newtype;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.client.HTable;
    import org.apache.hadoop.hbase.client.HTablePool;
    import org.apache.hadoop.hbase.client.Result;
    import org.apache.hadoop.hbase.client.ResultScanner;
    import org.apache.hadoop.hbase.client.Scan;
    public class User_Book_Scan {
         /*
          * 查询:先根据该用户点击的bookid查找用户id( b-u 表),再根据用户id查找该用户看过的书籍id即bookid(u-b表)
          */
         static Configuration cfg = HBaseConfiguration.create();
         static List<String> userlist = new ArrayList<String>();
         static List<String> booklist = new ArrayList<String>();
         
         public static void main(String[] args) throws Exception {
              System.out.println("bookid select userid");
              System.out.println("b_u table");
              User_Book_Scan.onescan("b_u", "003", "user");
              System.out.println("userlist:" + userlist.toString());
              System.out.println("userid select bookid");
              System.out.println("u_b  table");
              User_Book_Scan.twoscan("u_b","book");
              
              System.out.println("booklist:"+booklist.toString());
              System.out.println("001: " + Collections.frequency(booklist, "001"));
              List<String> resultlist=new ArrayList<String>();
              resultlist.addAll(booklist);
              System.out.println("resultlist:"+resultlist.toString());
              
              List<String> removelist=new ArrayList<String>();
              removelist=removeDuplicate(booklist);
              System.out.println("removelist:"+removelist.toString());
              for(int i =0 ;i<removelist.size();i++){
                   
                   System.out.println(removelist.get(i)+" : "+Collections.frequency(resultlist,removelist.get(i)));
                   
                   
              }
              
         }
         public   static   List  removeDuplicate(List list)  {      
                for  ( int  i  =   0 ; i  <  list.size()  -   1 ; i ++ )  {      
                    for  ( int  j  =  list.size()  -   1 ; j  >  i; j -- )  {      
                         if  (list.get(j).equals(list.get(i)))  {      
                            list.remove(j);      
                          }       
                      }       
                    }       
                  return list;      
              } 
         @SuppressWarnings("deprecation")
         public static void onescan(String tablename, String row, String family) throws Exception {
              /*
               * HTable table = new HTable(cfg, tablename); Scan s = new Scan();
               * ResultScanner rs = table.getScanner(s); Integer condition=new
               * Integer((int) (Math.random()*3+1)); String cd=condition.toString();
               *
               * for (Result r : rs) { System.out.println("Scan:" + r); }
               */
              HTable table = new HTable(cfg, tablename);
              // 执行函数
              Result result = table.getRowOrBefore(Bytes.toBytes(row), Bytes.toBytes(family));
              // 进行循环
              List<String> list = new ArrayList<String>();
              KeyValue[] keyValues = result.raw();
              
              for (KeyValue kv : keyValues) {
                   System.out.println(Bytes.toString(kv.getRow()));
                   System.out.println(Bytes.toString(kv.getFamily()));
                   System.out.println(Bytes.toString(kv.getQualifier()));
                   System.out.println(Bytes.toString(kv.getValue()));
                   System.out.println(Bytes.toString(kv.getKey()));
                   
                   list.add(Bytes.toString(kv.getQualifier()));
                   
                   userlist.add(Bytes.toString(kv.getQualifier()));
                   
              
                   
              }
              System.out.println(list.toString());
              table.close();
         }
         @SuppressWarnings("deprecation")
         public static void twoscan(String tablename,String family) throws Exception {
              /*
               * HTable table = new HTable(cfg, tablename); Scan s = new Scan();
               * ResultScanner rs = table.getScanner(s); Integer condition=new
               * Integer((int) (Math.random()*3+1)); String cd=condition.toString();
               *
               * for (Result r : rs) { System.out.println("Scan:" + r); }
               */
              HTable table = new HTable(cfg, tablename);
              
              
              for (int i=0;i<userlist.size();i++) {
                   // 执行函数
                   Result result = table.getRowOrBefore(Bytes.toBytes(userlist.get(i)), Bytes.toBytes(family));
                   // 进行循环
                   List<String> list = new ArrayList<String>();
                   KeyValue[] keyValues = result.raw();
                   for (KeyValue kv : keyValues) {
                        System.out.println(Bytes.toString(kv.getRow()));
                        System.out.println(Bytes.toString(kv.getFamily()));
                        System.out.println(Bytes.toString(kv.getQualifier()));
                        System.out.println(Bytes.toString(kv.getValue()));
                        System.out.println(Bytes.toString(kv.getKey()));
                        
                        list.add(Bytes.toString(kv.getQualifier()));
                        
                        booklist.add(Bytes.toString(kv.getQualifier()));                    
                   }
                   System.out.println(list.toString());  
              }
              table.close();
         }
    }
    

    结果

    2. 使用cell 

    //=========================================组合键查询时间段的数据
    				/*
    				 * 1.创建表access_log
    				 * 2.插入数据
    				 * 3.实现查询
    				 */
    				     //建表
    			             //Himp.createTable("access_log", fimaly);
    			         //插入 
    //			       for(int i=0;i<100;i++){
    //			             long time=System.currentTimeMillis();
    //			             String newtime=String.valueOf(time);
    //			             //System.out.println(time);
    //			             if(i<100&&i>=10){
    //			            	     Himp.putData("access_log", newtime+"00"+i,"http", "ip", "192.168.0."+i);
    //					             Himp.putData("access_log", newtime+"00"+i,"http", "domain", i-1+"~"+i);
    //					             Himp.putData("access_log", newtime+"00"+i,"http", "url", "www."+i+".com");
    //					             Himp.putData("access_log", newtime+"00"+i,"http", "referer", "Alibaba"+i);
    //					             
    //					             Himp.putData("access_log", newtime+"00"+i,"user", "browser_cookie", "%@4235ab4b"+i);
    //					             Himp.putData("access_log", newtime+"00"+i,"user", "login_id", "00"+i);
    //	                     }else {
    //	                    	     Himp.putData("access_log", newtime+"000"+i,"http", "ip", "192.168.0."+i);
    //	                    	     Himp.putData("access_log", newtime+"000"+i,"http", "domian",  i-1+"~"+i);
    //	                    	     Himp.putData("access_log", newtime+"000"+i,"http", "url", "www."+i+".com");
    //	                    	     Himp.putData("access_log", newtime+"000"+i,"http", "referer", "Alibaba"+i);
    //	                    	     
    //	                    	     Himp.putData("access_log", newtime+"000"+i,"user", "browser_cookie", "%@4235ab4b"+i);
    //					             Himp.putData("access_log", newtime+"000"+i,"user", "login_id", "000"+i);
    //	                     }
    //					     
    //			       }
    			         //查询
    			              
    //						    Date d = new Date(LONG_AT_THE_EARLIEST_TIME);  
    //					        Calendar c = Calendar.getInstance();  
    //					        c.setTime(d);  
    //					        //此处设置查询时间段
    //					        c.add(Calendar.SECOND, 10);  
    //					        String endtime=String.valueOf(c.getTimeInMillis());
    //					        System.out.println(c.getTimeInMillis()); 
    //			             Himp.GetDateFromCombinationKey("access_log", AT_THE_EARLIEST_TIME,endtime);
    
    			
    			
    			 //============================================================================================
    
    
    
    /**
    	 * @param tablename
    	 * @param strrowkey
    	 * @param endrowkey
    	 * 暂且查看一分钟的吧
    	 */
    	@Override
    	public void GetDateFromCombinationKey(String tablename, String strrowkey,String endrowkey) throws IOException {
    		init();
    		Table table= connection.getTable(TableName.valueOf(tablename));
    		Scan scan=new Scan();
    		scan.setStartRow(Bytes.toBytes(strrowkey));
    		scan.setStopRow(Bytes.toBytes(endrowkey));
    		ResultScanner rs=table.getScanner(scan);
    		for(Result r:rs){
    			for(Cell cell:r.rawCells()){
    //				if(strrowkey.equals(new String(CellUtil.cloneRow(cell)).substring(0, 13))){
    				System.out.print(" Rowkey: "+new String(CellUtil.cloneRow(cell)));
    				System.out.print(" column: "+new String(CellUtil.cloneFamily(cell)));
    				System.out.print(" :qualifier: "+new String(CellUtil.cloneQualifier(cell)));
    				System.out.print(" value: "+new String(CellUtil.cloneValue(cell)));
    				System.out.println(" timestamp: "+cell.getTimestamp());
    //				}
    					
    			}
    		}
    		table.close();//释放资源
    	}
    
    
    }
    
    
    //=======================================================================================================
    
     /**
    	  * 位置案例,输出一个地方的上级位置和下级位置
    	  * @param tablename 
    	                 表名
    	  * @param spacename 
    	                 需要查询的位置
    	  */
    	@SuppressWarnings("deprecation")
    	@Override
    	public void GetDateFromSpaceNeed(String tablename, String sapcename) {
    		init();
    		Table table = null;
    		//创建一个list用来装student_course_table表中一行row所对应的value(其实就是获取列限定符)
    		List<String> parentplace = new ArrayList<String>();
    		//用一个list容器来装推荐的书籍(不重复输出)
    		Set<String> childplace = new HashSet<String>();
    		List<String> cityname = new ArrayList<String>();
    		List<String> childcityname = new ArrayList<String>();
            String rowkey="";
    		switch(sapcename){
    				case "chengdu":
    					rowkey="5";
    		}
    			
    				try {
    					if(tablename!=null){
    					table = connection.getTable(TableName.valueOf(tablename));
    					
    
    					
    					/************************************************************************/
    				         Get get = new Get(Bytes.toBytes(rowkey));
    				         get.addFamily(Bytes.toBytes("child"));
    				         Result res = table.get(get);
    				         KeyValue[] kvs=res.raw();  
    				            for(KeyValue kv:kvs)  
    				            {  
    				            	
    				            	childplace.add(Bytes.toString(kv.getQualifier()));
    				            	//System.out.println(Bytes.toString(kv.getQualifier())+"->"+Bytes.toString(kv.getValue()));
    					        	      
    				            }  
    
    				System.out.println("下级城市代号:"+childplace);
    				
    				
    		
    	    /******************************************************/
    		  for(String gainuserid1 : childplace){
    		         Get get3 = new Get(Bytes.toBytes(gainuserid1));
    		         get3.addFamily(Bytes.toBytes(" "));
    		         Result res3 = table.get(get3);
    		         KeyValue[] kvs3=res3.raw();  
    		            for(KeyValue kv3:kvs3)  
    		            {  
    		            	if(!rowkey.equals(Bytes.toString(kv3.getFamily()))){
    		            		 childcityname.add(Bytes.toString(kv3.getValue()));
    			        	      
    			        	}
    		            }  
    
    		}
    			
    			  System.out.println("下级城市名字:"+ childcityname );
    			  //table.close();
    			  /********************************************************************/
    			  //table = connection.getTable(TableName.valueOf(tablename));
    			  //====================================================
    				Get get1 = new Get(Bytes.toBytes(rowkey));
    		         get1.addFamily(Bytes.toBytes("parent"));
    		         Result res1 = table.get(get1);
    		         KeyValue[] kvs1=res1.raw();  
    		            for(KeyValue kv1:kvs1)  
    		            {  
    		            	if(!" ".equals(Bytes.toString(kv1.getQualifier()))){
    		            	parentplace.add(Bytes.toString(kv1.getQualifier()));
    		            	//System.out.println(Bytes.toString(kv1.getQualifier())+"->"+Bytes.toString(kv1.getValue()));
    		            	}
    			        	      
    		            }  
    
    		System.out.println("上级城市代号:"+parentplace);
    		       /***********************************************************************/
    		  for(String gainuserid2 : parentplace){
    			  
    			  System.out.println("parent result is ->  "+gainuserid2);
    	         Get get0 = new Get(Bytes.toBytes(gainuserid2));
    	         System.out.println("get0 ->  "+get0);
    	         get0.addFamily(Bytes.toBytes(" "));
    	         Result res0 = table.get(get0);
    	         KeyValue[] kvs0=res0.raw();  
    	            for(KeyValue kv00:kvs0)  
    	            {  
    	                      		cityname.add(Bytes.toString(kv00.getValue()));
                                    // System.out.println("测试结果 :"+Bytes.toString(kv0.getValue()));
    	            }  
    
    	}
    		
    		  System.out.println("上级城市名字:"+cityname);
    	
    		//======================================================================
    		
    				table.close();
    				
    				}
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    
    //				try {
    //					table.close();
    //				} catch (IOException e) {
    //					e.printStackTrace();
    //				}
    
    		
    	}
    	
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    			 
    
  • 相关阅读:
    Reset Password Functionality FAQ
    Oracle User Management FAQ翻译及学习笔记
    Oracle EBS-SQL (SYS-1): sysadmin_用户职责查询.sql
    Form Presonalization 表单个性化定义控制应用
    5.4 定期成本费率分摊(成本还原)
    5.3 采购报价单(一揽子采购协议)价格自动更新待定成本
    5.2 印刷品自动计价
    5.1 零成本控制
    4.4 多组织物料[供应/需求]查询
    4.3 按仓管员分配子库安全性控制
  • 原文地址:https://www.cnblogs.com/apppointint/p/8885310.html
Copyright © 2011-2022 走看看