0
私はユーザーによる評価の映画のリストを持っています。Hadoop PIG(ネストされたJson)
{"_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}
]
}
すべてのユーザーが何レーティングを行ったかをカウントする必要があります。これは格付けに入る私の試みです。
b: {ratings::userId: int,ratings::rating: float}
ちょうど私が評価の内部にアクセスする必要があるユーザーをカウントする:
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);
は私に次のことを与えて説明します。しかし、これは成功していないポイントです。私はこれを試しました:
c = FOREACH b GENERATE COUNT(ratings);
これは私に間違いをもたらします。
私はこのような何かを取得する必要があります:
{userId: int, rating: float}