0
나는 사용자 등급별 영화 목록을 가지고 있습니다.중첩 된 Json을 사용하는 Hadoop PIG
{"_id":59607,"title":"King Corn (2007)",
"genres":["Documentary"],
"ratings":[ {"userId":1860,"rating":3},
{"userId":9970,"rating":3.5},
{"userId":16929,"rating":1.5},
{"userId":23473,"rating":4},
{"userId":23733,"rating":4},
{"userId":27584,"rating":3},
{"userId":28232,"rating":4},
{"userId":29482,"rating":3},
{"userId":40976,"rating":5},
{"userId":44631,"rating":4},
{"userId":47613,"rating":3},
{"userId":49763,"rating":3},
{"userId":58160,"rating":4.5},
{"userId":62249,"rating":3},
{"userId":65923,"rating":4},
{"userId":67507,"rating":4},
{"userId":68259,"rating":3.5},
{"userId":70331,"rating":5},
{"userId":71420,"rating":3.5}
]
}
모든 사용자가 몇 번의 등급을 매겼는지 계산해야합니다. 이것은 평가에 참여하려는 나의 시도입니다.
a = load '/movies_1m.json' using JsonLoader('id:int, title : chararray, genres : { (genre : chararray) }, ratings: { (userId : int, rating: float) } ');
는
b = FOREACH a GENERATE FLATTEN(ratings);
다음 줘 설명 :
b: {ratings::userId: int,ratings::rating: float}
그냥 내가 평가의 내부에 액세스해야하는 사용자를 계산. 그러나 이것이 성공하지 못하는 지점입니다. 시도 :
c = FOREACH b GENERATE COUNT(ratings);
오류가 발생합니다.
나는 이런 식으로 뭔가를 얻을 필요가 : 그 집계 작업이기 때문에
{userId: int, rating: float}