我用Python寫的像蜂巢UDAFs試驗:蜂巢UDAF:鑄造非Java蜂巢UDAF的輸出到地圖
SELECT TRANSFORM(id, vtype, price) USING 'udaf.py'
AS (vtype STRING, stats MAP<STRING,FLOAT>)
FROM (SELECT * FROM foo CLUSTER BY vtype) AS TEMP_TABLE;
的Python腳本編寫的V型和一些統計數據,例如均值和方差,作爲標準輸出的字典,由一個可以正常工作的製表符分隔。我遇到的問題是我無法弄清楚如何格式化定義統計信息映射的字段,以便HiveQL可以將其轉換爲MAP,如我的查詢中所定義。無論我試過我的統計領域是這樣的:
{"{mean:1.0,var:2.0}":null}
在上面的例子中我試圖恢復它作爲JSON字符串和HiveQL解釋這個關鍵,並設置空的價值。徹底閱讀HiveQL文檔我也嘗試了諸如「mean:1.0,var:2.0」,「MAP(mean:1.0,var:2.0)」,「mean:1.0,var:2.0」等等,但沒有任何成效。實際上有一種內置的方式可以與Hive在Cloudera上做到這一點嗎?
所以輸出「'意思是\ x031.0 \ x02variance \ x032.0」把它變成一個地圖'在Python腳本中工作!謝謝。還應該提到'str_to_map'只能用於'map'所以沒有浮點鍵。 –
fwilhelm