首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java逐行获取Qubole数据

使用java逐行获取Qubole数据
EN

Stack Overflow用户
提问于 2019-04-18 18:09:29
回答 1查看 57关注 0票数 1

我正在尝试使用Qubole SDK运行hive查询。虽然我能够作为string获得所需的结果,但为了更好地处理它,我希望按行访问它。类似于java对象的列表。

我获取数据的方法是:

代码语言:javascript
复制
CommandResponse commandResponse = client.command().hive().query(query).invoke().get();
ResultLatch resultLatch = new ResultLatch(client, commandResponse.getId());
ResultValue resultValue = resultLatch.awaitResult();
System.out.println(resultValue.getResults());

控制台给出如下输出:

代码语言:javascript
复制
"val1"  "val2"  "val3"  "val4"
........ some more set of values .......

我希望这个结果集以list的形式出现,我可以遍历它,而不是解析或标记字符串。

找不到任何库或类(如果有)。

EN

回答 1

Stack Overflow用户

发布于 2019-04-18 22:03:10

首先按\r\n拆分字符串,然后按\t拆分字符串,如下所示:

代码语言:javascript
复制
import org.apache.commons.lang3.StringUtils;

...

private static String convertNulls(String s) {
    \\Use this function to convert blanks, null and \\N to''
    return StringUtils.isBlank(s) | 
       s.equalsIgnoreCase("null") | 
        s.equalsIgnoreCase("\\N") ? "" : s;
}

...

inputStr=resultValue.getResults();

if (!StringUtils.isBlank(inputStr)) {
            for (String row: inputStr.split("\r\n")) { //split rows
                String[] s = row.split("\t");          //split columns

                //Do what you want here with s 
                //Use convertNulls method to convert all NULLs variations to empty strings
                //Or load some ArrayList or Map, etc


            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55743801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档