2016-06-26 17 views
0

Ich verwende springjdbctemplate, um Daten aus der Hive-Datenbank abzufragen.QueryforList Ergebnis zeigen Tabellenname

Dies ist mein Code: dieses

@RestController 
public class QueryController { 
    @Autowired 
    protected JdbcTemplate hiveTemplate; 

    @RequestMapping("/query") 
    public List query() { 
     List data = hiveTemplate.queryForList("select * from ecg.hivetbluserdata limit 100"); 
     return data; 
    } 
} 

Aber es gibt:

[{"hivetbluserdata.id_data":1,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":3.3871,"hivetbluserdata.inputtime":"2015-04-09 18:11:25.0"}, 
{"hivetbluserdata.id_data":2,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":1.56892,"hivetbluserdata.inputtime":"2015-04-09 18:11:25.0"}, 
{"hivetbluserdata.id_data":3,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":1.60802,"hivetbluserdata.inputtime":"2015-04-09 18:11:26.0"}, 
{"hivetbluserdata.id_data":4,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":2.09677,"hivetbluserdata.inputtime":"2015-04-09 18:11:26.0"}, 
{"hivetbluserdata.id_data":5,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":1.99902,"hivetbluserdata.inputtime":"2015-04-09 18:11:26.0"}, 
{"hivetbluserdata.id_data":6,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":1.97947,"hivetbluserdata.inputtime":"2015-04-09 18:11:26.0"}, 
{"hivetbluserdata.id_data":7,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:26","hivetbluserdata.ecgvalue":1.94037,"hivetbluserdata.inputtime":"2015-04-09 18:11:26.0"}, 
{"hivetbluserdata.id_data":8,"hivetbluserdata.id_user":1,"hivetbluserdata.time":"Thursday, April 09, 2015 18:09:27","hivetbluserdata.ecgvalue":1.56892,"hivetbluserdata.inputtime":"2015-04-09 18:11:26.0"}, 

Ich will nicht den Tabellennamen (hivetbluserdata ist der Tabellenname) zeigen. Wie kann ich dieses Problem lösen?

+0

Haben Sie das vorher nicht gesehen, aber versuchen Sie, einen Alias ​​für den qualifizierten Tabellennamen, z. '" wähle u. * aus ecg.hivetbluserdata u limit 100 "'. Zu Ihrer Information: Sie sollten niemals '*' in Ihrem Code verwenden. Listen Sie immer die Spalten auf, an denen Sie interessiert sind. '*' Ist eine Abkürzung für Ad-hoc-Abfragen, aber da Ihr Code an bestimmten Spalten interessiert ist, sollte er diese Spalten auflisten, auch wenn sie (derzeit) alle Spalten der Tabelle sind . – Andreas

Antwort

0

Sie können die folgenden Hive Konfiguration Eigenschaft verwenden, um Tabellennamen in der Ergebnismenge zu deaktivieren:

<property> 
    <name>hive.resultset.use.unique.column.names</name> 
    <value>false</value> 
</property> 

Referenz:

https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.resultset.use.unique.column.names

hive.resultset.use.unique. column.names

Standard Va lue: true

hinzugefügt: Hive 0.13.0 mit HIVE-6687

Spaltennamen im Ergebnis einzigartig gesetzt, indem sie mit Tabelle alias Spaltennamen qualifiziert, wenn nötig. Der Tabellenalias wird den Spaltennamen für Abfragen vom Typ "select *" hinzugefügt oder wenn die Abfrage explizit den Tabellenalias "select r1.x .." verwendet.

+0

wow ich weiß es nur, danke bro !! – samydoyle