hbase读取数据怎么快速转成json数组给前端

Configuration conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum", "hadoop1,hadoop2,hadoop3");
HTable table = new HTable(conf, "DataCollection1");

System.out.println("scan1");
Scan scan1 = new Scan();

new PrefixFilter(Bytes.toBytes("row"));
Filter filter3= new PrefixFilter(Bytes.toBytes("2017-01-01"));
scan1.setFilter(filter3);

scan1.setMaxVersions();

            ResultScanner scanner1 = table.getScanner(scan1);  
            System.out.println("scan2");
            int count=0; 
            JSONArray array = new JSONArray();           
            for (Result r : scanner1) {
               System.out.println("sssss");
               JSONObject mapOfColValues = new JSONObject();// 创建json对象就是一个{name:wp}
                for (KeyValue kv : r.raw()) {
                    System.out.println(String.format("row:%s, family:%s, qualifier:%s, qualifiervalue:%s, timestamp:%s.", 
                            Bytes.toString(kv.getRow()), 
                             Bytes.toString(kv.getFamily()), 
                            Bytes.toString(kv.getQualifier()), 
                            Bytes.toString(kv.getValue()),
                            kv.getTimestamp()));

                    mapOfColValues.put(Bytes.toString(kv.getQualifier()),Bytes.toString(kv.getValue()));
                }
                array.add(mapOfColValues);
                count++;
                System.out.println(count);
            }            
            scanner1.close();  
            table.close();  
            //pool.close();
            System.out.println(count);
            System.out.println("-------------finished----------------");    

以上是我主要的代码, DataCollection1表的数据有7000万多条,我查询一天的数据(大概10万条左右), 到了循环scanner1的时候就卡住了,不知道为什么就是很慢。rowkey的设计是“时间|ID”,真的不知道该怎么弄,求教大神解答

0

1个回答

这个数据一般都是全部取出来后再映射的吧,还有你可以参考下spring jdbc的rommapper的映射

0
yuejiaying
yuejiaying 没学过redis,不知道怎么将hbase结合起来,有推荐的教材吗
一年多之前 回复
yuejiaying
yuejiaying 回复airfling: 那么多数据全部放在redis里面不会有问题吗?
一年多之前 回复
airfling
airfling 回复yuejiaying: 跑批任务可以第一次跑的时候是读取所有的数据,之后是跑增量数据,还有你还有可能有数据过期,那就再加个跑批是定时删除redis里面的过期数据,总体的思路就是这样
一年多之前 回复
yuejiaying
yuejiaying 回复airfling: 厉害啊,谢谢啦,我先去试试看
一年多之前 回复
airfling
airfling 回复yuejiaying: 就是分开两步走,有一个跑批任务定时几分钟或者半个小时跑一次把数据取出来放到redis里面,然后你的web应用从redis里面读取这部分的数据就会快很多
一年多之前 回复
yuejiaying
yuejiaying 回复airfling: 怎么转成内存数据?
一年多之前 回复
airfling
airfling 是我看错了,原来是hbase表,这个速度慢是无法避免的,只能去优化,例如先把hbase数据转成内存数据,然后从内存中读取数据转换
一年多之前 回复
yuejiaying
yuejiaying 我上面那样写,循环取出来很慢,怎么全部取出来啊,可不可以不循环直接将ResultScanner转成json啊
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
获取前端json数组转成java集合
获取前端json数组转成java集合:nnn    //获取前端数据:[object,object,...]n    tring assets = request.getParameter("asset_list");n    List<String> assetIdStrList = new ArrayList<String>();nn    new ObjectMapp...
前端传json字符串后台转jsonArray
感觉这个方法一般web开发还是会常用到的。主要代码很长记不住。nnn JSONArray arr = JSONArray.fromObject(skuArrStr);n if (arr.size() > 0) {n List<Object> insureSkuDtos = new ArrayList<Object>();n for(int i...
前端解析json/数组转成json格式
前端解析json/数组转成json格式nJSON.parse("json内容"); //前端解析json,如果json为空,会报错nJSON.stringify("数组"); //数组转成json格式nnn
后台数据转换成json数组字符串到前端方法
1、将结果集ResultSet转化为List集合nn    //对结果集转换成list集合n    public List<Map<String,Object>> getListResult(ResultSet resultSet) throws SQLException{n        //创建返回的list集合n        List<Map<Strin...
js数组转为json数组
function agree(){n var ids = []; n var rows = $('#signAgainReq').datagrid('getSelections');n for(var i=0,len=rows.length; i<len; i++){n var signAgai...
javaweb如何返回一个无键JSON数组给前端,以JSF为例
1、引入GSON2.4jar包n2、CreatJSONMB.javann/*n * To change this license header, choose License Headers in Project Properties.n * To change this template file, choose Tools | Templatesn * and open the temp
JS获取前端传送的字段并转换为Json数组
$('.btnTrEdit').click(function() {rn var id = $(this).attr('data-bid');rn var apks = [];rnrn $('.chooseButton.active').each(function(i, n) {rn var id = $(this).attr('appkey');rn var name = $(th
js中json数组 和 字符串 互转
js中json数组 和 字符串 互转 const jsonStr1 = JSON.stringify( res.responseObject); //json转字符串。n //const area = JSON.parse( jsonStr1); //字符串转jsonn //console.log("----加载数据area:",area);n ...
后台将多个java对象转化成json数组传到前端
1.将多个对象保存在数组rnrnrnrnpublic static String toJsonArray(List list){  rn        if(null == list || list.size() == 0)   rn            throw new RuntimeException("数组列表为空!");  rn        StringBuilder sb = ne
JAVA后台传JSON JSP接受转数组
//---------------------------后台JAVA Controllerrnrn        @RequestMapping(value = "find")rn        @ResponseBodyrn        public String jsonSend(String tNo, HttpServletRequest request) {rn            
如何利用JavaScript遍历JSON数组
for(var json in jsonArray)           {               for(var key in jsonArray[json])               {                  inputText += jsonArray[json][key]+",";                }           } ...
JSON传数组给前端遇到的问题
后端一个二维数组json传给前端 发现取不出来 明明就是对象的类型了. 后来直接转成str再json_edcode() 前端再JSON.parse() 就能用对象的方式取数据了 二维数组的问题还没有弄清楚可惜了 时间有点赶
spark从oracle读取数据写到hbase
package com.analysisnnimport java.sql.DriverManager nimport java.text.SimpleDateFormatnnimport org.apache.hadoop.hbase.client.Put nimport org.apache.hadoop.hbase.io.ImmutableBytesWritable nimport org....
Jsp从ajax传json数组到Java,然后java将数据转为json对象的过程
1.我们先将数据封装成json数组。njsonstr = "[]";nn jsonarray = eval('('+jsonstr+')');nn for(var i=0;i<changeclass.length;i++){nn var jsonTemp = { "name" :changeclass[i]};nn jsonarray.push(jsonTemp);n...
【web前端】js json转数组,数组转json,字符串转数字
,学习记录//数组转json串nvar arr = [1,2,3, { a : 1 } ];nJSON.stringify( arr );//json字符串转数组nvar jsonStr = '[1,2,3,{"a":1}]';nJSON.parse( jsonStr );//字符串转数字nparseInt('123') : 返回 123(int);nparseInt('1234xxx') : 返回
后台接受前台传的json格式的数组
首先第一步前后台的参数名称要一致,不一致也可以就加个注解就是了,之后nnJSONArray jsonArray = JSONArray.fromObject(textMaterial);nn得到jsonArray,这是一个像list一样的容器,之后我们对他进行一个循环,nnfor (int i = 0; i < jsonArray.size(); i++) { n}nn和list的循环一样n...
将字符串转为数组并已JSON形式返回前台
private List<String> requirement;n //在实体类中增加一个属性,用于接收不在数据库中的字段n public List<String> getRequirement(){n List<String> list = new ArrayList<String>();n //判断是否有多余空格["",...
hbase上应用lucene创建索引及检索
hbasene([url]https://github.com/akkumar/hbasene[/url])是开源项目,在hbase存储上封装使用Lucene来创建索引,代码API非常简单,熟悉lucene的朋友可以很方便地创建。rnrn 以下为测试代码,完成读取一张hbase上记录url和用户id的表,对其创建索引并进行简单的基于url的索引的代码。当取到search的结果后,就可...
前端接受json 数据处理,对象或数组的拿取
php后台传过来的字符串nn[{"imei":"0752533678900242","id":1,"create_time":1732570073},{"imei":"0752533678900241","id":3,"create_time":1632570072}]nn转义html字符nnfunction HTMLDecode(text) { n
Json传对象数组到后台并转化成Java对象数组
Json传递数据到后来很方便,但是遇到复杂的数据传递,不注意细节会很容易报错。下面就来分享一下我的代码片段吧:rn1、我们在做批量处理的时候,都希望传递一个对象数组到后来,这样存入数据库也就很方便了。首先来看一下我前端js代码片段:rnfunction addUser(){rnvar $users = $("input:checked[name='selectUser']");rnvar engi
spark 读取hbase数据并转化为dataFrame
最近两天研究spark直接读取hbase数据,并将其转化为dataframe。之所以这么做,rn1、公司的数据主要存储在hbase之中rn2、使用dataframe,更容易实现计算。rn rn尽管hbase的官方已经提供了hbase-spark 接口,但是并未对外发布,而且目前的项目又有这方面的需求,且网上关于这么方面的参考比较少,rn rn故贴出来,代码如下,仅供参考rn rn rn rn rn
前端学习之——js解析json数组
**前端学习之——js解析json数组** n解析json数组即对JSONArray的遍历一、对于标准的json数组如:var result=[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}];进行遍历的时候,可以直接通过for循环遍历这个数组,有两种方
如何将集合转换成json格式对象数组,并且通过ajax()实现在网页上输出?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>n<%nString path = request.getContextPath();nString basePath = request.getScheme()+"://"+request.getServerName()+":"+r
前端传json对象(包含json数组在里面)的时候,后台为Java,用SSM时候如何接收
前端JS代码 如下:rnvar url = "web";rnvar postdata = {rn"history":[rn                          rn{ rn                            rn "time":"2017-10-18 10:10:10", //time 字段:时间rn                            rn"o
hbase分页查询实现
hbase分页查询实现
vue对数据转成json数组
所谓的转成json数组也就是数组里面包含对象,更复杂一点的也就是数组里面包含对象里面又包含一个数组,这个数组里面又有一个对象,这个就是思路,我是怎么做的呢nnnn我这边由于后台需要所以我设置了两对象,其中order里面包含一个数组,这个数组是用来存放orderList这个对象的用forEach循环遍历数据到对象nnnn为了进行测试数据都是乱加的,首先我在order对象里面任意一个字段加了数据,然后...
将list集合转成json数组形式
1.导入json_jar.jar包2.编写一个实体类Notepublic class Note implements Serializable{ private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } p...
后台要传数组的json串
今天碰到一个很奇葩的问题,就是后台要统计我的分享资讯模块,所以我要把资讯分享的内容传给后台。n一条资讯的栏目,可能有好几个,比如:热门,最新等。当时请求后台的数据的时候就是返回一个资讯的栏目数组。现在分享的时候,后台对我这边的要求就是,一开始资讯是怎么传过来的,我就要怎么给他传回去。那么问题来了。他文档上写着栏目的tag是一个string(32)。我靠。。。n - n然后接下来,我就各种找资料,找数
【数组】实际开发中,入参json数组如何转换为java数组?
入参为json串,json中包含json数组,需取到转换成一般的java数组,在代码中使用。如下格式nn nn{n "printType": "T",n "visaSerialNo": "1210003653",n "checkedPolicyNo": ["1021205072018000167", "1025905072018441713", "
一个json 数组转tree
一个json 数组nvar nodes = [n{"id":2,"title":"第一级1","parentid":0},n{"id":3,"title":"第二级1","parentid":2},n{"id":4,"title":"第二级2","parentid":2},n{"id":5,"title":"第三级1","parentid":4},n{"id":6,"title":"第
json数组直接转换成对象
//时间格式转换rnJSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] { "yyyy-MM-dd H:m:s" })); rn//将json字符串转换为json rnList WiiInsuredList = (List)JSONArray.toCollection(json, WiiInsure
hbase读取数据过程
HBASE的一个读取数据流程的解析,清晰的画出整个过程,十分有利于理解
SpringMVC接收json字符串转为List对象(数组对象)
本来项目中的springmvc已配置好的,没有问题,但是今天突然有个需求,需要写一个接口接收json字符串自动转换为List对象,查了一下用@RequestBody就可以,但是我改了以后,调用接口就报415异常,于是继续百度,很多解决方都是修改pom.xml文件添加如下代码: n org.codehaus.jackson n jacks
SSM处理前端ajax发送json数组对象转List
前端ajax请求var datalist = new Array();nvar object = new Object();ndatalist.push(object);n$.ajax({n type : "POST",n url : "select/saveOffer",n // async : false,
如何在hbase中快速插入10万条数据
我们知道每一条put操作实际上都是一个rpc操作,它将客户端数据传送到服务器然后返回。这只是折小数据量的操作,如果有一个应用需要插入十万行数据rn到hbase表中,这样处理就太不合适了。rn    hbase的api配备了一个客户端的些缓冲区,缓冲区负责手机put操作,然后调用rpc一次性将put送往服务器。rn    下面是一个插入十万行到一个表的代码:rnimport org.apache.h
fastJson将json数组转list对象
fastJson将json数组转list对象
前台js数组json字符串,后台json字符串转为json数组,最后转换成集合的具体实现
前台js数组json字符串,后台json字符串转为json数组,最后转换成集合的具体实现
从前端获取 json数组,在后端(java)获取并解析输出。
      因项目功能需要,需实现获取用户填写的 Json数组 对象,并传到后端,再存入数据库。在网上查了许久,文章内容都不是我想要的,而且例子都是没有实现我需要的功能。所以摸索了一天,实现了。现在把过程写一遍,也算是总结。我使用了前端WEB控件库miniUI。获取用户输入的信息,这个信息是多条记录。如下图所示:nnnn      使用js获取数据,数据格式为如下所示 :      nn[{"_i...
JS中的数组转变成JSON格式字符串的方法
有一个JS数组,如:nnnvar arr = [["projectname1","projectnumber1"],["projectname2","projectnumber2"],["projectname3","projectnumber3"]];nnn nn想将此数组转换成JSON字符串,如:nnnvar jsonarr = [{"projectname":pr
在前台传递一个数组,后台如何用JSONArray接收的一种方法
1、首先在jsp页面用ajax传递了一个数组,具体如下图所示:nn2、然后在Controller页面中先将参数用JsonObject格式接收到后台:nn3、然后用JSONObject的getJSONArray()方法将其转换成数组专用的JsonArray格式:nn这样我们就在后台用JSONArray的方式接收到了前台传过来的数组了。nn...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 怎么快速学python 怎么快速学好python