How to group bag in pig [closed] - hadoop
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
First I have data and I group
A = LOAD './test.txt' USING PigStorage(' ') AS (id:int, time:int, value:float);
B = GROUP A BY time;
For example result I have structure like this.
1001 {(1,1001,0.2),(3,1001,0.3),(2,1001,0.3),(4,1001,0.6)}
1002 {(2,1002,0.5),(1,1002,0.3),(3,1002,0.1),(4,1002,0.6)}
1003 {(4,1003,0.2),(1,1003,0.8),(2,1003,0.4),(3,1003,0.5)}
But I want
1001 {(1,1001,0.2),(2,1001,0.3),(3,1001,0.3),(4,1001,0.6)}
1002 {(1,1002,0.3),(2,1002,0.5),(3,1002,0.1),(4,1002,0.6)}
1003 {(1,1003,0.8),(2,1003,0.4),(3,1003,0.5),(4,1003,0.2)}
Use NESTED FOREACH
C = FOREACH B {
sort_by_id = ORDER A BY id;
GENERATE group, sort_by_id ;
};
Related
How can I make this query in laravel? [closed]
Closed. This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post. Closed 1 year ago. Improve this question I can't find how to make this query SELECT * FROM paquetes WHERE ( SELECT estatuses.nombre FROM estatus_paquete INNER JOIN estatuses ON estatuses.id = estatus_paquete.estatus_id WHERE (estatus_paquete.paquete_id = paquetes.id) ORDER BY estatus_paquete.created_at DESC LIMIT 1 ) = 'En envio' AND paquetes.deleted_at IS NULL
It's a tricky query, but you can make it line by line with the following syntax. $query = DB::query() ->select('*') ->from('paquetes') ->where(function ($sub) { $sub->select('estatuses.nombre') ->from('estatus_paquete') ->join('estatuses', 'estatuses.id', 'estatus_paquete.estatus_id') ->whereColumn(['estatus_paquete.paquete_id', 'paquetes.id']) ->orderByDesc('estatus_paquete.created_at') ->limit(1); }, 'En envio') ->whereNull('paquetes.deleted_at'); // dump($query->toSql()); $query->get();
Group By and CASE query in LinQ [closed]
Closed. This question needs debugging details. It is not currently accepting answers. Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question. Closed 7 years ago. Improve this question How can I write this query in LINQ: SELECT Name, READY = max(CASE TrDet.tracktypeid WHEN 7 THEN 1 END), AVAILABLE = max(CASE TrDet.tracktypeid WHEN 2 THEN 1 WHEN 5 THEN 1 END) FROM PENDINGAPPROVAL Apr JOIN TRACKS Tr ON Apr.TrackId = Tr.Id JOIN TRACK_DETAIL TrDet ON Tr.Id = TrDet.TrackId GROUP BY Tr.Name Thanks
This doesn't answer the question you asked, but this gets the answer you want: var results=context.PENDINGAPPROVAL.Select(p=>new { Name=p.Name, READY=p.Tracks.Any(t=>t.TRACK_DETAILS.Any(td=>td.tracktypeid==7)) AVAILABLE=p.Tracks.Any(t=>t.TRACK_DETAILS.Any(td=>td.tracktype==2 || td.tracktype==5)) });
SUPER SIMPLE LINQ to filter row does not work [closed]
Closed. This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post. Closed 7 years ago. Improve this question Spent about 4 hours trying to figure this out without success. IQueryable<userTOM> Infolist = userTOMs(); var rbtUserId = Infolist.Where(x => x.UserName == FormsUserName); userTOMs <-- Does not exist. Remade the namespace many times but will not appear.
IQueryable does not run immediately on the database. In order to run the query, one has to run functions such as .ToList(), or .Count() on the IQueryable. Therefore, nothing in your pasted code triggers the database request, and the ID will not be retrieved. I would modify your request to this: IQueryable<userTOM> Infolist = userTOMs(); userTOM rbtUser = Infolist.FirstOrDefault(x => x.UserName == FormsUserName); Guid rbtUserId; //assuming this will be populated with a Guid value if (rbtUser != null) { rbtUserId = rbtUser.Id; //assuming "ID" is the property name }
how to use .Contains LINQ in decimal fields [closed]
Closed. This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post. Closed 8 years ago. Improve this question I need to filter by a field of type decimal. How Do I? Here's how I do for string fields: cartaoCredito.strCartaoCreditoDescricao.ToUpper().Contains(strParam.ToUpper()) Here is my method: public List<CartaoCredito> GetCartaoCreditoByintCodigoGrupoUsuarioByFiltro(int intCodigoGrupoUsuario, string strParam) { return (from cartaoCredito in _DatabaseContext.CartaoCredito where cartaoCredito.intCodigoGrupoUsuario == intCodigoGrupoUsuario && (cartaoCredito.strCartaoCreditoDescricao.ToUpper().Contains(strParam.ToUpper())) select cartaoCredito).ToList(); }
I think you're trying to translate a call to string.Contains to a decimal value, which won't work, because decimal does not have a Contains method like string does. If you have a collection of decimals and you want to see if a value is within that list, do something like: List<decimal> list = {list of decimals} var query = {source}.Where(x => list.Contains(x.{decimal property}); or if you just have a single value, you do not need Contains. Just do decimal decParam = {some value}; var query = {source}.Where(x => x.{decimal property} = decParam);
Summing and subtracting in Linq to Sql [closed]
Closed. This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post. Closed 8 years ago. Improve this question Hello all I want to achieve something like the SQL Select statement with Linq to Sql. Any help will be appreciated. SELECT SUM(Debit-Credit) AS LBalance FROM dbo.LeaveLedger WHERE StaffId =1 AND LYEAR='2000'
Assuming Entity Framework: Context.Table.Where(x => x.StaffId == 1 and x.LYEAR == "2000") .Sum(y => (y.Debit - y.Credit));
Something like this? var sum = db.LeaveLedger .Where(ll => ll.StaffId == 1 and ll.LYEAR == "2000") .Sum(ll => (ll.Debit - ll.Credit))
Since Mansfield has already shown the expression syntax, I'll have a go with the classic query: var LBalance = (from p in dbo.LeaveLedger where p.StaffId == 1 && p.LYEAR == "2000" select (p.Debit - p.Credit).Sum();