Sorteren van data

  • Voor een bigdata opdracht moet ik een grafiek maken waarin te zien is of het éérste team van een voetbalteam meer/effectiever traint dan een team dat onder dit team speelt van een voetbal club. Dit doe ik met behulp van apache Hadoop (eis van de klant) en de R-programmeertaal.


    De (hive) query die ik gebruik voor het filteren van de data is: http://pastebin.com/qhvkAPBU
    Hier komende de volgende resultaten uit: http://pastebin.com/P71h2X0C (CSV Export)


    Ik heb nu totaal 53 records waarvan er een x-aantal van team1 en een x-aantal van team 2 zijn... echter als ik dit door een "for loop" haal zul je zien dat ik 43 weken heb en dat de waardes van team 1 en team 2 ongelijk zijn...


    Nu wil ik dus 3 arrays (vectors in R-programming) met dezelfde aantal waarde, waarvan de week leidend is dus, wanneer een waarde ontbreekt moet deze standaard 0 worden:


    $weeks = [1,2,3, ..., 43]
    $team1 = [147.33, 123.11, 123.55, ..., 123.55]
    $team2 = [123.33, 0, 0, ..., 123.55]


    Hoe zouden jullie dit oplossen in een willekeurige programmeertaal of misschien wel in de SQL query zelf...?

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Misschien is dit een oversimplificatie van de oplossing maar ik kan zogauw twee manieren bedenken. In beide gevallen is de crux dat je een soort van "weken-dimensie" opspant zodat je altijd evenveel entries hebt.


    1. via de query
    Indien je een aparte tabel hebt voor de weken waarin je een LEFT JOIN kunt doen tegen je data op week-id. Is er geen entry krijg je netjes een NULL-kolom. Een wellicht minder nette variant hiervan is dat je dit op een andere manier binnen de query deze dimensie opspant met statische waarden (en een UNION ofzo?) of met een subquery (waarbij je iets met DISTINCTe weeknummers doet?). Maar wat ik zo in de gauwigheid zie is dat het weeknummer geen aparte entiteit is in je data.


    2. in code
    Vul per team standaard een array met nullen ter lengte van het aantal weken en prik dan de resultaten in op de goede week. Ik denk dat dit het makkelijkste is op dit moment.


    Observatie: omdat de week/het weeknummer blijkbaar een belangrijke rol in dit geheel speelt is het misschien verstandig om deze (mogelijk redundant) in een aparte kolom / tabel op te slaan zodat je hier (stukken) makkelijk(er) mee kunt rekenen.

  • Oplossing die ik heb gebruikt is inderdaad array's vullen met 0-waardes om vervolgens d.m.v. een for loop de weken in te vullen...


    Bedankt voor het meedenken! Er kan volgens mij een slotje op.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!