import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.mapred.TableOutputFormat
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.hadoop.hbase.client.{Put, Result}
import org.apache.hadoop.hbase.util.Bytes
import org.apache.hadoop.mapred.JobConf object 写Hbase数据 {
def main(args: Array[String]): Unit = {
val sparkConf=new SparkConf().setAppName("往Hbase中写数据").setMaster("local[2]")
val sc=new SparkContext(sparkConf)
val tableName="student"
// sc.hadoopConfiguration.set(TableOutputFormat.OUTPUT_TABLE,tableName) val conf=HBaseConfiguration.create() val jobConf=new JobConf(conf)
jobConf.setOutputFormat(classOf[TableOutputFormat])
jobConf.set(TableOutputFormat.OUTPUT_TABLE,tableName)
//构建新纪录
val dataRDD=sc.makeRDD(Array("5,hadoop,B,29","6,spark,G,56"))
val rdd=dataRDD.map(_.split(",")).map{x=>{
val put=new Put(Bytes.toBytes(x())) //行健的值 Put.add方法接收三个参数:列族,列名,数据
put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes(x())) //info:name列的值
put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("gender"),Bytes.toBytes(x())) //info:gender列的值
put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("age"),Bytes.toBytes(x()))//info:age列的值
(new ImmutableBytesWritable,put) ////转化成RDD[(ImmutableBytesWritable,Put)]类型才能调用saveAsHadoopDataset
}}
rdd.saveAsHadoopDataset(jobConf)
}
}

结果:

hbase(main)::> scan 'student'
ROW COLUMN+CELL
column=info:age, timestamp=, value=
column=info:gender, timestamp=, value=B
column=info:name, timestamp=, value=hadoop
column=info:age, timestamp=, value=
column=info:gender, timestamp=, value=G
column=info:name, timestamp=, value=spark
column=info:age, timestamp=, value=
column=info:gender, timestamp=, value=B
column=info:name, timestamp=, value=hadoop
column=info:age, timestamp=, value=
column=info:gender, timestamp=, value=G
column=info:name, timestamp=, value=spark

IDEA中Spark往Hbase中写数据的更多相关文章

  1. IDEA中Spark读Hbase中的数据

    import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.io.ImmutableBytesWr ...

  2. 用Spark查询HBase中的表数据

    java代码如下: package db.query; import org.apache.commons.logging.Log; import org.apache.commons.logging ...

  3. Spark读取Hbase中的数据

    大家可能都知道很熟悉Spark的两种常见的数据读取方式(存放到RDD中):(1).调用parallelize函数直接从集合中获取数据,并存入RDD中:Java版本如下: JavaRDD<Inte ...

  4. IDEA中 Spark 读Hbase 报错处理:

    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] // :: ERROR RecoverableZooKeepe ...

  5. Spark读写Hbase中的数据

    def main(args: Array[String]) { val sparkConf = new SparkConf().setMaster("local").setAppN ...

  6. 用Spark向HBase中插入数据

    java代码如下: package db.insert; import java.util.Iterator; import java.util.StringTokenizer; import org ...

  7. Spark 读取HBase和SolrCloud数据

    Spark1.6.2读取SolrCloud 5.5.1 //httpmime-4.4.1.jar // solr-solrj-5.5.1.jar //spark-solr-2.2.2-20161007 ...

  8. mapreduce 只使用Mapper往多个hbase表中写数据

    只使用Mapper不使用reduce会大大减少mapreduce程序的运行时间. 有时候程序会往多张hbase表写数据. 所以有如题的需求. 下面给出的代码,不是可以运行的代码,只是展示driver中 ...

  9. 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

随机推荐

  1. 常见算法的python实现

    提到排序算法,常见的有如下几种:冒泡排序.选择排序.插入排序.快速排序.堆排序.归并排序.希尔排序:查找算法最常见二分查找.这些算法的时间复杂度如下: 算法名称 时间复杂度(一般情况) 冒泡排序 O( ...

  2. loaction.reload(false)和location.reload(true) js发起请求

    loaction.reload(false)和location.reload(true)差别: loaction.reload(false) 先判断页面有没修改,有的话就从服务器下载页面,没有就直接从 ...

  3. 【BZOJ 2118】 墨墨的等式(Dijkstra)

    BZOJ2118 墨墨的等式 题链:http://www.lydsy.com/JudgeOnline/problem.php?id=2118 Description 墨墨突然对等式很感兴趣,他正在研究 ...

  4. JS逻辑运算符&&与||的妙用

    JS逻辑运算符&&与||的妙用   /* 文章写的不错 就此分享 */ &&中第一个表达式为假就不会去处理第二个表达式,直接放回结果. || 中就刚很好相反.如果第一个 ...

  5. 【05】emmet系列之各种缩写

    [01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写 各种缩写   缩写:! & ...

  6. xtu summer individual-4 A - Beautiful IP Addresses

    Beautiful IP Addresses Time Limit: 2000ms Memory Limit: 262144KB This problem will be judged on Code ...

  7. [K/3Cloud] 关于单据转换的问题

    1. 单据转换,是否支持重复下推,支持新增下推和更新下推? 答:支持重复下推,是否允许下推受以下因素: 1).源分录是否是有效状态(源单单头状态会自动影响分录,下同),例如已审核.未关闭.未作废: 2 ...

  8. poj-1979 && hdoj - 1312 Red and Black (简单dfs)

    http://poj.org/problem?id=1979 基础搜索. #include <iostream> #include <cstdio> #include < ...

  9. Ubuntu 16.04系统启动时卡在:(initramfs)

    背景: 由于不正常的关机和重启,或者突然断电导致的关机,下次起来后不能进去系统,停留在(initramfs). 解决方法: 使用如下命令修复 fsck -y /dev/sda1 说明:其中sda1为系 ...

  10. Ubuntu 16.04安装ntopng流量监控软件

    ntop官方在2012年就已经不再更新,取代的是ntopng.ntopng具有Web页面,适合做网络管理监控软件.比如监控局域网内多台机器的上网情况等. 不过这个东西感觉不太准,最好的方案应该把安装n ...