【问题标题】:how to get multiple columns using HBase shell如何使用 HBase shell 获取多个列
【发布时间】:2018-04-29 05:00:12
【问题描述】:

我有带有 2 个家庭列的 Randonnee 表

Info: Name, region, suite
Tech: distance, denivele

我的表 Randonnee 上有这些数据

      (id, Name, region, distance, denivele, suite)

      (1, 'Monts du Djurdjura', 'Tizi Ouzou', 35, 1000, NULL);

      (2, 'Circuit de Misserghin', 'Oran', 25 , 514, NULL);

      (3, 'Montagne de Murdjadju', 'Oran', 31, 1100, NULL);

      (4, 'Canastel', 'Oran', 18, 890, 3);

      (5, 'Yama Gouraya', 'Bejaia', 19, 900, NULL);

      (6, 'Sidi Makhlouf', 'Blida', 8, 165, 8);

      (7, 'Tikjda', 'Tizi Ouzou', 10, 1900, NULL);

      (8, 'Feroukha', 'Blida', 14.18, 454, NULL);

      (9, 'Chrea Azzazga', 'Tizi Ouzou', 6.23, 1548, 11);

我想知道名字是'Montagne de Murdjadu'的randonne的距离

我试过这个查询:

scan 'randonnee',{COLUMN=>'info:Name',FILTER=>"ValueFilter(=, 'binary:Montagne de Murdjadju')"}

但问题是她给了我身份作为回报,而不是距离

ROW                   COLUMN+CELL
  3                    column=info:nom, timestamp=1509960875652, value=Montagne de Murdjadju 

我如何获得距离?

【问题讨论】:

    标签: hadoop nosql hbase bigdata cloudera


    【解决方案1】:

    您可以使用SingleColumnValueFilter。在 hbase shell 中,您可以执行以下操作来获取距离

    import org.apache.hadoop.hbase.filter.CompareFilter
    import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
    import org.apache.hadoop.hbase.util.Bytes
    
    scan 'randonnee', {COLUMNS=>['tech:distance'], FILTER=>SingleColumnValueFilter.new(Bytes.toBytes('info'),Bytes.toBytes('name'),CompareFilter::CompareOp.valueOf('EQUAL'),Bytes.toBytes('Montagne de Murdjadju'))}
    

    【讨论】:

    • 这个查询对我有用scan 'rando',{FILTER=>"SingleColumnValueFilter('info', name', =,'binary:Montagne de Murdjadju')"} 问题给我所有我想要的列,只是技术:距离
    【解决方案2】:

    这个查询告诉我名字是'Montagne de Murdjadu'的randonnee的距离

    scan 'randonnee',{FILTER=>"SingleColumnValueFilter('info', 'Name', =,'binary:Montagne de Murdjadju') AND ColumnPrefixFilter ('distance')"}
    

    scan 'randonnee',{FILTER=>"SingleColumnValueFilter('info', 'Name', =,'binary:Montagne de Murdjadju') AND QualifierFilter(=,'binary:distance') "}
    

    结果:

    ROW  COLUMN+CELL                                                                                                       
    3    column=tech:dist, timestamp=1509961960359, value=31
    

    【讨论】:

      猜你喜欢
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      相关资源
      最近更新 更多