IDEA中Spark往Hbase中写数据
2024-08-30 17:35:29
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
最新文章
- 【原创】JMeter学习(三十七)Jmeter录制手机app脚本
- 《UML大战需求分析》阅读笔记4
- LESS介绍及其与Sass的差异
- (String)151. Reverse Words in a String
- xcode5 和code6中push后方法执行的先后问题
- 远程连接Windows2008R2时服务器报Terminal Services错误的解决办法
- 自己写了一个类似百度空间自动保存草稿的程序 php+jquery
- ARM指令系统
- 谷歌浏览器-如何让Chrome默认以隐身模式启动?
- 为什么样本方差(sample variance)的分母是 n-1?
- Varnish缓存服务
- IWorkspaceFactory接口
- python 数据驱动(ddt)
- MongoDB官网配置项目整理
- python笔记3——字符串的操作
- [InstFiles]在Inno中打包隐藏和系统文件的头文件
- 20190319xlVBA_根据考勤数据统计缺勤缺考数据
- 为什么会出现container、injection技术?发展历史及未来发展趋势
- 竖直的ViewPager,上下滑动的ViewPager,VerticalViewPager ;
- SharePoint 2010 使用沙盒解决方案隐藏页面中的”元素”
热门文章
- fielddata breaker与cache size
- 使用HTML,CSS快速导出数据到Excel
- 关于SELECT 逻辑的执行顺序问题
- ProxySQL Tutorial : setup in a MySQL replication topology
- WebLoad 解析服务器返回的XML格式内容
- bzoj 1005 [HNOI2008] 明明的烦恼 (prufer编码)
- 【SGU194&;ZOJ2314】Reactor Cooling(有上下界的网络流)
- 洛谷——P3379 【模板】最近公共祖先(LCA)
- operamasks-omGrid的使用
- MongoDB小结07 - update【$addToSet &; $each】