Open Refine – tipy a triky
Open Refine je nástroj, který ti pomůže se zpracováním velkých dat a automatizací.

Tento článek není vlastně článek, ale jen soubor tipů a triků, které se pro práci v Open Refine hodí znát.
Celá řada z nich vychází ze školení Filipa Podstavce.
Stažení a instalace
Open Refine stáhneš z webu openrefine.org. Není třeba nic instalovat, jen rozbalíš stažený archiv.
Konfiguraci jako přidělenou paměť či interval autoukládání najdeš v souboru
- openrefine.l4j.ini – pokud spouštíš Refine přes .exe soubor
 - openrefine.ini – pokud spouštíš přes .bat
 
Po úpravě konfigů je potřeba Refine restartovat.
Návody a dokumentaci pak najdeš na github.com/OpenRefine/OpenRefine/wiki
Kam se ukládají projekty najdeš tak, že v levém menu dáš Open project a pak dole Browse workspace directory.
Doporučená rozšíření jsou Refine-Stats a VIB Bioinformatics Core. Rozšíření nainstaluješ tak, že je stáhneš a archiv rozbalíš do složky /openrefine/webapp/extensions. Pak Refine restartuj.
Práce s Open Refine
Když při vytváření projektu vidíš, že nesedí kódování, můžeš jej změnit. Většinou zabere UTF-8. Na stejném místě můžeš upravit, kolik prvních řádek se má brát jako záhlaví tabulky.

Data můžeš editovat přímo v buňce kliknutím na edit.
Pokud zvolíš Apply to All Identical Cells, daná hodnota se vyplní i pro všechny podobné buňky. Takže následující obrázek vyplní do všech prázdných buněk ve sloupci Město výraz Plzeň.

Pokud provedeš změnu nad sloupcem All, tak si pak v druhém kroku vybereš, na které všechny sloupce se změna má provést.
V All -> Edit columns -> Re-order / remove columns můžeš hromadně měnit pořadí sloupců nebo je mazat.
Pomocí View -> Collapse columns můžeš vybrané sloupce skrýt.
Nejvyšší a nejnižší hodnoty ve sloupci získáš přes Column statistics nad sloupcem. Jen k tomu potřebuješ rozšíření Refine-Stats.
SVYHLEDAT nahradíš tím, že u sloupce, přes který páruješ, dáš Edit column -> Add column from other project. Jen druhou tabulku musíš mít založenou jako samostatný projekt.
V Edit cells -> Common transforms najdeš celou řadu předdefinovaných funkcí jako je odebrání přebytečných mezer, změna velikosti písmen, odebrání duplicit…
GREL
General Refine Expression Language (GREL) je jazyk, s jehož pomocí teprve poznáš sílu Open Refinu.
Popis všech jeho funkcí najdeš na wiki.
Užitečné příkazy
| value[1,-1] | Odřízně první a poslední znak | 
| value.split(„,“) | Rozdělí řetězec do pole, pomocí čárky jako oddělovače | 
| value.split(“ „)[-1] | Vybere poslední slovo | 
| cells[„NAZEV“].value | Získání hodnoty ze sloupce „NAZEV“ | 
| value.replace(„neco“,“jineho“) | Nahradí text „neco“ za text „jineho“ | 
| value.contains(„neco“) | Vrátí buď true nebo false podle toho, jestli buňka obsahuje slovo neco | 
| if (podminka, kdyz ano, kdyz ne) | If podmínka. Např. if(value.contains(„NECO“),“ANO“,“NE“) | 
| value.split(/\/|\?|\&/) | Lomítka uvozují regulární výraz, takže toto rozdělí výraz dle lomítka, otazníku i & | 
| forEach(value.split(‚,‘),v,v.toNumber()).sum() | Součet řádku(po klasterizaci) | 
| with(value.split(‚,‘), a, forEach(a, v, v.toNumber()).sum() / a.length()).replace(„NaN“,““).toNumber() | Průměrná hodnota řádků(po klasterizaci) | 
| value.escape(„url“) | Escapuje hodnotu do formátu pro URL. Zpětně funguje value.unescape(„html“) | 
| value.parseJson()[„title“] | Vybere z pole JSON výstupu prvek title | 
| value.parseJson()[„title“][„subtitle“] | Vybere z pole JSON výstupu prvek subtitle, zanořený v title | 
| value.parseHtml().select(„title“)[0].htmlText() | Získání titulku stránky | 
| value.parseHtml().select(„meta[name=description]“)[0].htmlAttr(„content“) | Získání description stránky | 
| forEach(value.parseHtml().select(„h3“),v,v.htmlText()).join(„¤“) | Získání obsahu všech H3 nadpisů, oddělených znakem ¤ | 
| value.split(„http://“)[0].split(„https://“)[0].split(„www.“)[0].split(„/“)[0] | Osekání URL na doménu | 
Mohlo by tě zajímat
- Kontrola nasazení GTM a GA na webu pomocí Open Refine
 - Řešení duplicitních transakcí v Google Analytics
 - Co je Google Tag Manager
 
Nebo se pro inspiraci podívej do rozcestníku článků.