Hi, The Hbase/Jython ( http://wiki.apache.org/hadoop/Hbase/Jython ) wiki page is outdated. I want to edit it but the page is marked as immutable.
I have attached a working sample and a patched version of bin/hbase with the jython command added. -- Savu Andrei Website: http://www.andreisavu.ro/
import java.lang from org.apache.hadoop.hbase import HBaseConfiguration, HTableDescriptor, HColumnDescriptor, HConstants from org.apache.hadoop.hbase.client import HBaseAdmin, HTable from org.apache.hadoop.hbase.io import BatchUpdate, Cell, RowResult # First get a conf object. This will read in the configuration # that is out in your hbase-*.xml files such as location of the # hbase master node. conf = HBaseConfiguration() # Create a table named 'test' that has two column families, # one named 'content, and the other 'anchor'. The colons # are required for column family names. tablename = "test" desc = HTableDescriptor(tablename) desc.addFamily(HColumnDescriptor("content:")) desc.addFamily(HColumnDescriptor("anchor:")) admin = HBaseAdmin(conf) # Drop and recreate if it exists if admin.tableExists(tablename): admin.disableTable(tablename) admin.deleteTable(tablename) admin.createTable(desc) tables = admin.listTables() table = HTable(conf, tablename) # Add content to 'column:' on a row named 'row_x' row = 'row_x' update = BatchUpdate(row) update.put('content:', 'some content') table.commit(update) # Now fetch the content just added, returns a byte[] data_row = table.get(row, "content:") data = java.lang.String(data.value, "UTF8") print "The fetched row contains the value '%s'" % data # Delete the table. admin.disableTable(desc.getName()) admin.deleteTable(desc.getName())