Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. students = LOAD '/user/cloudera/student.csv' AS (name: CHARARRAY, age: INT, score: FLOAT, grade: INT);
  2. /*
  3. Do premennej načíta dáta z textového súboru s hodnotami oddelenými tabulátorom (CSV), ktorý je uložený v distribuovanom súborovom
  4. systéme. Pre textové súbory je potrebné definovať názov a typ jednotlivých stĺpcov v dátovej tabuľke, Pig podporuje napr. reťazce
  5. CHARARRAY, celé čísla INT, LONG, desatinné čísla FLOAT, DOUBLE, Boolovské hodnoty BOOLEAN (hodnoty true/false bez rozlíšenia
  6. veľkosti písmen).
  7. */
  8.  
  9. DUMP students;
  10. -- Vypíše dáta premennej do logov pri spustení.
  11.  
  12. STORE results INTO '/user/cloudera/results.csv’;
  13. -- Uloží dáta premennej do nového súboru v distribuovanom súborovom systéme.
  14.  
  15. name_and_avg_scores = FOREACH students GENERATE name, score / grade AS avg_grade;
  16. /*
  17. Slúži na výber, transformovanie, generovanie alebo agregovanie dát. Hodnoty je možné kombinovať operátormi +, -, *,
  18. /, % (zvyšok po delení). Číselné hodnoty je možné transformovať zabudovanými funkciami (ABS, SIN, COS, LOG, LOG10,
  19. ROUND, atď.). Reťazce je možné spájať funkciou CONCAT(str1, str2) alebo transformovať funkciami LOWER, UPPER, TRIM, atď.
  20. */
  21.  
  22. ordered = ORDER students BY name DESC
  23. -- Usporiada dáta podľa zadaného atribútu vzostupne ASC alebo zostupne DESC.
  24.  
  25. filtered_students = FILTER students BY 18 < age AND age < 25;
  26. /*
  27. Odfiltruje záznamy podľa zadanej podmienky, je možné porovnávanie operátormi <, >, <=, >=, ==, != a použitie logických spojok
  28. a negácie AND, OR, NOT, zložitejšie výrazy je potrebné zoskupiť zátvorkami napr. (age < 18 AND (name == 'Peter' OR name == 'Lucia')).
  29. Pri porovnávaní reťazcov je možné použiť regulárne výrazy napr. name matches '[pP]eter'
  30. */
  31.  
  32. results = LIMIT students 25;
  33. -- Vyberie z dát prvých n záznamov
  34.  
  35. group_by_grade = GROUP students BY grade;
  36. /*
  37. Zoskupí dáta podľa zadaného atribútu. Zoskupené dáta budú mať dva atribúty, prvý je označený group a zodpovedá atribútu podľa
  38. ktorého sú dáta zoskupené, druhý je označený podľa premennej zoskupovaných dát (v príklade students) a obsahuje množinu záznamov,
  39. ktoré patria do danej skupiny.
  40. */
  41.  
  42. -- Zoskupené dáta je možné agregovať príkazom FOREACH, napr.:
  43.  
  44. avg_scores = FOREACH group_by_grade GENERATE group AS grade, AVG(students.score) AS avg_score, COUNT(students) AS students_count;
  45. /*
  46. Vytvorí dáta kde prvý stĺpec bude ročník, druhý priemerné hodnotenie v ročníku a tretí počet študentov
  47. */
  48.  
  49. students_and_grades = JOIN students BY grade, grades BY grade;
  50. /*
  51. Spája dve tabuľky podľa zadaného spoločného kľúča. Napr. ak má tabuľka students stĺpce name a grade a tabuľka grades grade a
  52. total_score, podom uvedený príklad vytvorí tabuľku, ktorá bude mať atribúty name, grade a total_score.
  53. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement