Which hbase release are you using ? Below is the write method from hbase 1.1 :
public void write(KEY key, Mutation value) throws IOException { if (!(value instanceof Put) && !(value instanceof Delete)) { throw new IOException("Pass a Delete or a Put"); } mutator.mutate(value); Mutation is an hbase class: public abstract class Mutation extends OperationWithAttributes implements Row, CellScannable, HeapSize { If you can show the skeleton of CustomClass, that would give us more clue. >From the exception, looks like CustomClass doesn't extend Mutation. A Mutation object can modify multiple columns. Cheers On Fri, Apr 22, 2016 at 8:14 PM, Nkechi Achara <nkach...@googlemail.com> wrote: > Hi All, > > I ma having a few issues saving my data to Hbase. > > I have created a pairRDD for my custom class using the following: > > val rdd1 =rdd.map{it=> > (getRowKey(it), > it) > } > > val job = Job.getInstance(hConf) > val jobConf = job.getConfiguration > jobConf.set(TableOutputFormat.OUTPUT_TABLE, "tableName") > job.setOutputFormatClass(classOf[TableOutputFormat[CustomClass]]) > > rdd1.saveAsNewAPIHadoopDataset(jobConf) > > When I run it, I receive the error: > > ava.lang.ClassCastException: com.test.CustomClass cannot be cast to > org.apache.hadoop.hbase.client.Mutation > at > org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:85) > at > org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12$$anonfun$apply$4.apply$mcV$sp(PairRDDFunctions.scala:1036) > at > org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12$$anonfun$apply$4.apply(PairRDDFunctions.scala:1034) > at > org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsNewAPIHadoopDataset$1$$anonfun$12$$anonfun$apply$4.apply(PairRDDFunctions.scala:1034) > at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1205) > > Has anyone got a concrete example of how to use this function? > Also, does anyone know what it will actually save to Hbase, will it just > be a single column for the CustomClass? > > Thanks, > > Keech >