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ů.