Show Menu
Cheatography

Apache Pig - 1. czesc Cheat Sheet (DRAFT) by

materiały do szkolenia KDM

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Operacje na HDFS-ie

Kopiowanie pliku z lokalnego systemu plików do HDFS-a
hadoop fs -copyF­rom­Local ${src_­local} ${dst_­HDFS}
Usuwanie pliku na HDFS-ie
hadoop fs -rm ${to_r­emo­ve_­on_­HDFS}
Przeno­szenie pliku w HDFS-ie
hadoop fs -mv ${src_­HDFS} ${dst_­HDFS}
Kopiowanie wyników z HDFS-a do lokalnego systemu plików
hadoop fs -getmerge ${src_­HDFS} {dst_l­ocal}
Aby korzystać z Pig-a w trybie rozpro­szonym (wywołanie
pig
lub
pig -x mapreduce
) należy umieścić pliki wejściowe w HDFS-ie. Po dokonaniu przetw­orzenia można ponownie ściągnąć dane do lokalnego systemu plików

Typy danych (Java/Pig)

Integer
int
Long
long
Float
float
Double
double
String
chararray
Byte[]
bytearray
Boolean
boolean
Tuple
tuple:­(sth)
Bag
bag:{t­upl­es:­(te­xt:­cha­rar­ray)}
Map
map:['­key­'#v­alue]
Podstawowe typy danych używane w Pig-u i ich interp­retacja w Javie

Schemat danych

Wczytanie danych bez wskazania schematu
A = load 'input­_fi­le.t­sv';
Wczytanie danych ze wskazaniem nazw kolumn (danym przypisany jest typ bytearray)
A = load 'input­_fi­le.tsv' as (col1, col2, col3);
Wczytanie danych ze wskazaniem pełnego schematu (nazwy kolumn i ich typy)
A = load 'input­_fi­le.tsv' as (col1:int, col2:c­har­array, col3:l­ong);
j.w., inny przykład
A = load 'input­_fi­le.tsv' as (col1:­int­,co­l2:­cha­rar­ray­,co­l3:­{tu­p:(­f1:int, f2:lon­g)});
WERYFI­KACJA schematu danych w tabeli A
describe A;
Użytkownik wczytując dane może podać ich schemat.
Dzieje się tak kiedy podaje się nazwy kolumn, bądź też nazwy kolumn z konkre­tnymi typami.
 

Produkcja danych

Wypisanie tabeli A w konsoli
dump A;
Zapisanie tabeli A do pliku DST
store A into 'DST';
Aby sekwencja operacji - czy w intera­ktywnej konsoli, czy w wykony­wanym skrypcie - została wykonana konieczne jest umiesz­czenie operacji produk­ującej wynik.
Operacje nie prowadzące do wyprod­uko­wania wyniku są ignoro­wane.

Wykorz­ystanie UDFow

Zareje­struj plik JAR z lokali­zacji wykonania skryptu
register 'myjar.jar'
Zareje­struj wszystie pliki JAR z lokali­zacji wykonania skryptu
register '*.jar'
Zareje­struj wszystkie pliki JAR z lokali­zacji wykonania skryptu oraz poziom wyżej
register '.jar,../.jar'
Użyj UDF-a z klasy pl.edu.ex­amp­le.T­OLOWER
B = foreach A generate FLATTE­N(p­l.e­du.e­xa­mpl­e.T­OLO­WER­(col1)) as lowerCol1;
Zareje­struj plik z UDFem Jythonowym
register judf.py using jython as judf;
Użyj UDF-a z zareje­str­owanego skryptu judf.py
B = foreach A generate FLATTE­N(j­udf.TO­LOW­ER(­col1)) as lowerCol1;
Pig umożliwia korzys­tanie ze zdefin­iow­anych w Javie, Pythonie, bądź w innym języku zdefin­iow­anych przez użytko­wnika funkcji (User Defined Functions, UDFs). Aby skorzystać z tej możliwości należy zareje­strować paczkę JAR, bądź skrypt Pythonowy, etc.

Pythonowe UDFy

@outputSchema('chararray')
def TOLOWER(inStr):
 return inStr.lower()