使用Apache豬版本0.10.1.21(rexported)數據樣本文件的Pig Load如何混合標量和映射數據類型?
內容:
AtomicNumber,ElementName,Symbol,AtomicMass,PropertyMap
46,Palladium,Pd,106.42,[P#46,N#60,Struc#Cubic]
49,Indium,In,114.818,[P#49,N#66,Struc#Tetragonal]
52,Tellurium,Te,127.6,[P#52,N#76,Struc#Hexagonal]
86,Radon,222.0,Rn,[P#86,N#136,Struc#Cubic]
38,Strontium,Sr,87.62,[P#38,N#50,Struc#Cubic]
Plutonium,94,Pu,244.0,[P#94,N#150,Struc#Monoclinic]
注:某些列特意換(氡和鈈)怎麼看豬手柄數據類型不匹配
豬腳本:
AtomElem = LOAD 'data/Atoms.txt' USING PigStorage(',') AS (AtomicNumber:int, ElementName:chararray, Symbol:chararray, AtomicMass:float, PropertyMap:map[]);
DUMP AtomElem;
結果:
(,ElementName,Symbol,,)
(46,Palladium,Pd,106.42,)
(49,Indium,In,114.818,)
(52,Tellurium,Te,127.6,)
(86,Radon,222.0,,)
(38,Strontium,Sr,87.62,)
(,94,Pu,244.0,)
Question1:我希望能夠顯示PropertyMap。你能告訴我如何修改豬腳本或數據文件,以便將PropertyMap列顯示爲地圖數據類型。
Question2:在地圖模式的聲明中,我想強類型的數據類型。我將模式聲明爲PropertyMap:map [int,int,chararray],但豬已經拒絕了語法(錯誤,預期的右括號)。是否可以聲明有幾個鍵的地圖?如果是的話,模式聲明應該是什麼樣子?
在此先感謝您的幫助。
精彩的回答,非常感謝您花時間重寫我的測試用例。它完美的作品。瞭解Q2的說明。 – Polymerase 2013-05-10 01:49:39
你能幫我多一點嗎?我使用這個腳本來顯示地圖上的值,但是在'#'處或附近得到語法錯誤,意外符號。對不起,但我怎樣才能在這個評論部分輸入代碼?!?!? – Polymerase 2013-05-10 05:56:09
嘗試詢問一個新問題併發布準確的代碼和數據。這聽起來像錯誤是指代碼中的數字符號。 – 2013-05-10 21:43:35