Close

Open Refine – tipy a triky

20. 9. 2019

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

Logo Open Refine
Logo Open Refine

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.

Změna kódování
Změna kódování

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

Apply to All Identical Cells
Apply to All Identical Cells

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“].valueZí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

Nebo se pro inspiraci podívej do rozcestníku článků.