You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Ram <ru...@gmail.com> on 2012/04/17 12:07:52 UTC
Hbase Map/reduce-How to access individual columns of the table?
have a table called User with two columns ,one called visitorId and the other
called friend which is a list of strings. I want to check whether the VisitorId
is in the friendlist. Can anyone direct me as to how to access the table columns
in a map function? I'm not able to picture how data is output from a map
function in hbase. My code is as follows.
ublic class MapReduce {
static class Mapper1 extends TableMapper<ImmutableBytesWritable, Text> {
private int numRecords = 0;
private static final IntWritable one = new IntWritable(1);
private final IntWritable ONE = new IntWritable(1);
private Text text = new Text();
@Override
public void map(ImmutableBytesWritable row, Result values, Context context)
throws IOException {
//What should i do here??how do i access the individual columns and
compare?
ImmutableBytesWritable userKey = new ImmutableBytesWritable(row.get(),
0, Bytes.SIZEOF_INT);
context.write(userkey,One);
}
//context.write(text, ONE);
} catch (InterruptedException e) {
throw new IOException(e);
}
}
}
public static void main(String[] args) throws Exception {
Configuration conf = HBaseConfiguration.create();
Job job = new Job(conf, "CheckVisitor");
job.setJarByClass(MapReduce.class);
Scan scan = new Scan();
Filter f = new RowFilter(CompareOp.EQUAL,new SubstringComparator("mId2"));
scan.setFilter(f);
scan.addFamily(Bytes.toBytes("visitor"));
scan.addFamily(Bytes.toBytes("friend"));
TableMapReduceUtil.initTableMapperJob("User", scan, Mapper1.class,
ImmutableBytesWritable.class,Text.class, job);
}
Re: Hbase Map/reduce-How to access individual columns of the table?
Posted by Doug Meil <do...@explorysmedical.com>.
Hi there-
Have you seen the chapter on MR in the RefGuide?
http://hbase.apache.org/book.html#mapreduce.example
You use the Result instance just like you would from a client program.
On 4/17/12 6:07 AM, "Ram" <ru...@gmail.com> wrote:
> have a table called User with two columns ,one called visitorId and the
>other
>called friend which is a list of strings. I want to check whether the
>VisitorId
>is in the friendlist. Can anyone direct me as to how to access the table
>columns
>in a map function? I'm not able to picture how data is output from a map
>function in hbase. My code is as follows.
>
>ublic class MapReduce {
>
>static class Mapper1 extends TableMapper<ImmutableBytesWritable, Text> {
>
> private int numRecords = 0;
> private static final IntWritable one = new IntWritable(1);
>
>
> private final IntWritable ONE = new IntWritable(1);
> private Text text = new Text();
> @Override
> public void map(ImmutableBytesWritable row, Result values, Context
>context)
>throws IOException {
>
> //What should i do here??how do i access the individual columns
>and
>compare?
> ImmutableBytesWritable userKey = new
>ImmutableBytesWritable(row.get(),
>0, Bytes.SIZEOF_INT);
>
> context.write(userkey,One);
> }
>
> //context.write(text, ONE);
> } catch (InterruptedException e) {
> throw new IOException(e);
> }
>
> }
>}
>
>
>
>public static void main(String[] args) throws Exception {
> Configuration conf = HBaseConfiguration.create();
> Job job = new Job(conf, "CheckVisitor");
> job.setJarByClass(MapReduce.class);
> Scan scan = new Scan();
> Filter f = new RowFilter(CompareOp.EQUAL,new
>SubstringComparator("mId2"));
> scan.setFilter(f);
> scan.addFamily(Bytes.toBytes("visitor"));
> scan.addFamily(Bytes.toBytes("friend"));
> TableMapReduceUtil.initTableMapperJob("User", scan, Mapper1.class,
>ImmutableBytesWritable.class,Text.class, job);
>
>}
>
>