Nejlepší trénuje, aby se přístup velkých dat v Azure Databricks s R

0

Otázka

Nové v Azure a DatabricksSnažím se přístup velký soubor dat, na které bych chtěl běžet R procesu (psaný v data.table a který běží dobře na místě).

Nelíbí se správné termíny, nebo, jak celé prostředí Azure funguje, ale teď, moje data je přítomen ve 3 formátech :

  • tabulka
  • paquet
  • csv

První pokus (a nejlogičtější pro mě) : typické fread na csv soubory. Na malé soubory, vše je v pořádku. Na "velké" soubory (3Go), je zapotřebí mnoho, mnoho minut, zatímco lokálně, to trvá jen pár sekund.

enter image description here

Proč je mnohem déle, než lokálně ?

Druhý pokus s SparkR na csv soubory a collect() pro práci s data.table enter image description here

Ale collect() vrátí chybu : enter image description here

Je tam něco, co můžu udělat, abych toto nastavit ?

Třetí pokus : stejné jako výše na delta soubory, se stejným typem chyby

enter image description here

Čtvrtý pokus : SQL žádost SparkR ale collect ještě vrátit stejnou chybu

enter image description here

Je to jeden z mých pokusů lepší než jiný ? Jsem na správné cestě ? Jsem něco chybí ?

Jakákoliv pomoc nebo radu, bude velmi užitečné.

azure data.table databricks r
2021-11-22 10:39:01
1

Nejlepší odpověď

0

Ohledně načítání z DBFS je objektové úložiště v cloudu není místní úložiště, takže načítání času samozřejmě bude mnohem delší.

O chybě můžete nastavit Jiskra config, ale není doporučeno, protože můžete dostat ven z paměti chyby:

spark.driver.maxResultSize <X>g

Můžete nastavit ji v clusteru jiskra config enter image description here

Nejlepší řešení je použít více instancí (takže tam bude automaticky více oddílů - tento limit se vztahuje na oblast, například RAM paměť velikost je také důležitá, ale lepší, obvykle stačí přidat více instancí měřítku vodorovně). Povolit auto-škálování je doporučeno v případě velké datové sady.

Prosím, nepoužívejte sbírat (), jak to čte všechny vaše datovém na řidiče, aby objekt, takže to nebude fungovat. Obecně tato funkce není doporučeno, i pro menší datové soubory. Pokud chcete diagnostikovat vaše datovém prosím, používat funkce, jako je .první() nebo .show s limit.

2021-11-22 13:04:06

Díky za odpověď, je to trochu jasnější. Ale jako nový uživatel tohoto prostředí, nechápu všechno :) Jak mohu nastavit Jiskra config například ? Jak mohu použít více instancí ? (Máte pravdu, data jsou v cloudu. Můj cluster má 252Go a 72 jader).
Discus23

wow, tato hvězdokupa je už docela velký. Budu aktualizovat moje odpověď s více detaily za pár hodin. Prosím, nepoužívejte sbírat (), jak to čte všechny vaše datovém na řidiče, aby objekt, takže to nebude fungovat. Obecně tato funkce není doporučeno, i pro menší datové soubory. Pokud chcete diagnoze vašem datovém prosím, používat funkce, jako je .první() .show s limit.
Hubert Dudek

Až do teď, jsem nenašel lepší způsob, než collect() spustit můj "místní" skript napsaný v data.table... Nemůžu se dočkat, až si vaše aktualizace !
Discus23

ale co přesně chcete dosáhnout? zkuste zobrazit(df) také
Hubert Dudek

Musím spustit celý skript, který jsem napsal v data.table. Ale myslím, že budu muset přepsat v sparkr, ne ? Ale vypadá to složitější než to zní. Snažila jsem se vytvořit nový sloupec pro dlouhou dobu používání strsplit na další sloupec bez úspěchu...
Discus23

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................