我有數據的格式如下:如何加載和處理數據爲MAP豬?
isotimestamp source service info serviceid msg hostname requsetid
2013-08-22T13:23:18.226220+01:00 indiana service2q info 255 " processing
request " host1 e2cerd22
我能夠通過UDF到ISO時間戳轉換成datetime。消息由空格分隔,消息長度不固定。當我嘗試通過pig-storage('')
加載數據時(由於消息位由空格分隔),它將檢索下一位消息作爲其他列數據。
在上面的例子中,如果我生成主機名,它給了我消息的請求位。有沒有什麼特定的方法來處理像MAP這樣的數據?我試圖使用TO-MAP
,但未能實現所需的地圖轉換。
tomapdata = FOREACH data GENERATE myudf.test(dt)as date,
TOMAP(source,service,info,serviceid,msg,hostname,requestid)as m;
getdata = FOREACH tomapdata GENERATE dt, m#hostname, m#serviceid;
是否可以將日期作爲chararray
和其餘部分數據加載爲地圖?
load 'data.log' as (dt:chararray , m:MAP[chararray]);
Foreach data generate m#source ;
問題:
任何一個可以指導我在加載數據的豬MAP?
任何人都可以提供一些關於在Pig中加載/處理數據的建議嗎?
**需要的地圖:
source#indiana
service#service2q
msg#"processing request"
hostname#host1
requestid#ec2cerd22**
Broada非常感謝如何在我嘗試按以下方式生成鍵值對時彈出了無法投射chararray以與模式源進行映射:map error ** FOREACH數據生成myudf.test(dt)作爲日期,源#'service'; ** – user2667326