有沒有辦法將Hive查詢結果轉換爲JSON格式?Hive的JSON輸出格式查詢結果
回答
這似乎經常出現。使用來自Brickhouse的to_json UDF(http://github.com/klout/brickhouse)。如果將結果轉換爲named_struct,則它會將其解釋爲JSON映射,並相應地輸出結果。
SELECT to_json(named_struct("field1", field1 ,
"field2", field2,
"field3", field3))
FROM mytable;
to_json也將相應地解釋數組和映射。
我的經驗是使用傑克遜庫(http://jackson.codehaus.org/),你創建一個POJO來映射json格式。所以一旦你從你的配置單元查詢中得到了ResultSet,你就可以迭代它並使用Jackson創建POJO的對象。
/**--JACKSON Class--**/
public class Item {
@JsonProperty
private String att1;
@JsonProperty
private String att2;
public Item(String att1, String att2){
this.att1 = att1;
this.att2 = att2;
}
}
/**--the class where u run your query--**/
List<Item> list = new ArrayList<Item>();
ResultSet rs = executeQuery(queryStr); // do your hive query here
while(rs.next){
String att1 = rs.get("att1");
String att2 = rs.get("att2");
Item item = new Item(att1, att2);
list.add(item);
}
然後您可以返回項目列表作爲結果,傑克遜允許您非常容易地以json格式編寫它。
創建一個ObjectMapper ObjectMapper mapper = new ObjectMapper();映射器爲您提供了很多選項,可以將json格式的對象寫入不同的目標。例如。輸出流,字節緩衝等。
遍歷列表。
使用映射器以json格式寫入值,例如。 mapper.writeValue(out,Item)。在這個例子中,out是一個OutputStream。
謝謝。我打算爲此寫一個Hive UDF。將嘗試納入這一點。 – divinedragon 2012-04-12 02:33:56
你有這個排序? – Shengjie 2012-04-12 23:32:06
我正在使用UDF。完成後會發布。 – divinedragon 2012-04-13 06:11:36
最簡單的方法是先存儲爲tsv,然後使用類似spray的庫轉換爲JSON。
只要您不嘗試自定義太多,Hive就能正常工作。 如果您確實可以訪問羣集中的Spark,請使用SparkSQL而不是Hive。您的查詢結果將存儲在SchemaRDD中,並且從那裏您可以輕鬆映射到JSon執行.map(_。toJson),假設您已將範圍導入了噴射。
我正在使用一個名爲Apache Nifi的工具。它有AvrotoJSON處理器。 Avro格式的配置單元輸出可以輕鬆轉換爲JSON。下面的鏈接將有幫助:https://nifi.apache.org/
- 1. Cypher查詢JSON格式化結果
- 2. Nodejs JOIN查詢:格式化JSON輸出
- 3. 格式的查詢結果
- 4. 格式化此日期範圍的輸出查詢結果
- 5. HIVE,JSON格式
- 6. 格式化查詢結果
- 7. 格式SQL查詢結果
- 8. 以特定格式輸出SQL查詢結果
- 9. 來自Hive輸出日誌的結果
- 10. TSQL格式查詢輸出
- 11. 格式MongoDB查詢輸出
- 12. 查詢以輸出期望的結果
- 13. 輸出數據庫查詢的結果?
- 14. 如何將格式爲CSV的查詢結果從標準輸出中導出?
- 15. 的SQL Server 2016 - JSON格式的查詢結果
- 16. SQL查詢CakePHP的格式(無效的JSON結果)
- 17. 像MySQL的「\ G」這樣的垂直格式的Hive查詢結果?
- 18. Django的查詢JSON結果
- 19. Django - HttpResponse 2 JSON格式的查詢結果
- 20. SQL查詢結果的格式
- 21. Json格式輸出
- 22. Hive查詢輸出分隔符
- 23. Hive查詢輸出到文件
- 24. PySpark Hive查詢未顯示輸出
- 25. 如何從Slick查詢結果輸出JSON?
- 26. 查詢JSON格式
- 27. MySQL查詢結果假輸出
- 28. 將SQL查詢結果輸出到GeoRSS
- 29. 在html中輸出查詢結果
- 30. SELECT查詢只輸出一個結果
http://code.google.com/p/hive-json-serde/ – 2012-04-03 15:44:06
好像我不是唯一一個尋找這個解決方案。感謝分享這個項目。將會看到它如何有用。 – divinedragon 2012-04-05 14:24:10
@Steve我檢出了hive-json-serde。它看起來像是讀取和處理JSON數據。我一直在尋找我的數據是製表符分隔的東西,但是當我從配置單元查詢它們時,查詢輸出是以json格式。 – divinedragon 2012-04-06 10:13:07