一、使用DataFrame.saveAsHadoopDataset(conn)方法。
特点:适合做批量的写入。优点为批量写入方便快捷。缺点对于数据量大的DF写入速度太慢。
val conn = new JobConf(HBaseConfigurationcreate())//设置HBase连接
conn.set(,)
conn.set(,)//设置Host和Port
conn.set(TableOutputFormat.OUTPUT_TABLE,“targetTableName”)//设置要插入到的HBase表名
conn.setOutputFormat()
df.rdd.map(x=>{
val put = new Put(Bytes.toBytes(x.getString(0))) //参数为rowkey
put.addColumn(Bytes.toBytes("columnFamilyname"),Bytes.toBytes("columnName1"),Bytes.toBytes("columnValue1")
put.addColumn(Bytes.toBytes("columnFamilyname"),Bytes.toBytes("columnName2"),Bytes.toBytes("columnValue2")
put.addColumn(Bytes.toBytes("columnFamilyname"),Bytes.toBytes("columnName3"),Bytes.toBytes("columnValue3")
(new ImmutableBytesWritable, put) //返回元组
}).saveAsHadoopDataset(conn) //存入HBase
二、使用HTable.put(Put)方法。
更可靠,使用数据量更小。
df.rdd.map(x => {