Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- students = LOAD '/user/cloudera/student.csv' AS (name: CHARARRAY, age: INT, score: FLOAT, grade: INT);
- /*
- 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
- 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
- CHARARRAY, celé čísla INT, LONG, desatinné čísla FLOAT, DOUBLE, Boolovské hodnoty BOOLEAN (hodnoty true/false bez rozlíšenia
- veľkosti písmen).
- */
- DUMP students;
- -- Vypíše dáta premennej do logov pri spustení.
- STORE results INTO '/user/cloudera/results.csv’;
- -- Uloží dáta premennej do nového súboru v distribuovanom súborovom systéme.
- name_and_avg_scores = FOREACH students GENERATE name, score / grade AS avg_grade;
- /*
- Slúži na výber, transformovanie, generovanie alebo agregovanie dát. Hodnoty je možné kombinovať operátormi +, -, *,
- /, % (zvyšok po delení). Číselné hodnoty je možné transformovať zabudovanými funkciami (ABS, SIN, COS, LOG, LOG10,
- ROUND, atď.). Reťazce je možné spájať funkciou CONCAT(str1, str2) alebo transformovať funkciami LOWER, UPPER, TRIM, atď.
- */
- ordered = ORDER students BY name DESC
- -- Usporiada dáta podľa zadaného atribútu vzostupne ASC alebo zostupne DESC.
- filtered_students = FILTER students BY 18 < age AND age < 25;
- /*
- Odfiltruje záznamy podľa zadanej podmienky, je možné porovnávanie operátormi <, >, <=, >=, ==, != a použitie logických spojok
- 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')).
- Pri porovnávaní reťazcov je možné použiť regulárne výrazy napr. name matches '[pP]eter'
- */
- results = LIMIT students 25;
- -- Vyberie z dát prvých n záznamov
- group_by_grade = GROUP students BY grade;
- /*
- 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
- 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,
- ktoré patria do danej skupiny.
- */
- -- Zoskupené dáta je možné agregovať príkazom FOREACH, napr.:
- avg_scores = FOREACH group_by_grade GENERATE group AS grade, AVG(students.score) AS avg_score, COUNT(students) AS students_count;
- /*
- Vytvorí dáta kde prvý stĺpec bude ročník, druhý priemerné hodnotenie v ročníku a tretí počet študentov
- */
- students_and_grades = JOIN students BY grade, grades BY grade;
- /*
- 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
- total_score, podom uvedený príklad vytvorí tabuľku, ktorá bude mať atribúty name, grade a total_score.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement