2016-06-26 1 views
0

私はspringjdbctemplateを使ってハイブデータベースからデータを問い合わせます。QueryforList resultテーブル名を表示

これは私のコードです:

@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; 
    } 
} 

しかし、それは、これを返します。

[{"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"}, 

私は、テーブル名を表示したくない(hivetbluserdataはテーブル名です)。どうすればこの問題を解決できますか?

+0

これまで見たことはありませんが、修飾されたテーブル名のエイリアスを指定してみてください。 '' ecg.hivetbluserdataからuを選んでください。 FYI:あなたのコードで '*'を使うべきではありません。興味のある列を常にリストアップしてください。 '*'はアドホックなクエリの短縮形ですが、コードが特定の列に興味があるので、それらの列を(現時点では)表のすべての列。 – Andreas

答えて

0

あなたは、結果セット内のテーブル名を無効にするには、次のハイブ設定プロパティを使用することができます。

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

参考:

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

hive.resultset.use.unique。列.names

デフォルトVa LUE:真

追加で:HIVE-6687

とのハイブ0.13.0は、必要に応じて、テーブルの別名で列名を修飾することで を結果セットの列名が一意になります。テーブルエイリアス は、 "select *"タイプのクエリの列名に追加されます。または、 クエリで明示的にテーブルエイリアス "select r1.x .."が使用されている場合。

+0

うわー、ちょうどそれを知っている、ありがとう! – samydoyle

関連する問題