abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
16.11. 17:00 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2018-11-13 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Přehled novinek v poznámkách k vydání. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Simon Long z novinek zdůrazňuje multimediální přehrávač VLC s hardwarovou akcelerací nebo vývojové prostředí pro Python Thonny ve verzi 3. Ke stažení jsou nově také lite a full obrazy Raspbianu. Raspbian Full opět obsahuje software Mathematica.

Ladislav Hagara | Komentářů: 0
16.11. 02:00 | Nová verze

Krátce po vydání Debianu 9.6 oznámil Tomáš Matějíček vydání verze 9.6 dnes již na Debianu založené živé linuxové distribuce Slax. Vedle vylepšení z Debianu je opraveno několik malých chyb. Opraveno bylo bootování pomocí PXE. Novinkou je skript s názvem pxe pro spuštění vlastního PXE serveru.

Ladislav Hagara | Komentářů: 0
16.11. 01:00 | Nová verze

Byla vydána beta verze Red Hat Enterprise Linuxu 8. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

Ladislav Hagara | Komentářů: 3
15.11. 13:44 | IT novinky

Nadace Raspberry Pi na svém blogu představila (YouTube) jednodeskový počítač Raspberry Pi 3 Model A+. Toto menší Raspberry Pi 3 lze koupit za 25 dolarů.

Ladislav Hagara | Komentářů: 0
15.11. 06:00 | Pozvánky

Dnes a zítra probíhá v Praze konference Internet a Technologie 18 pořádaná sdružením CZ.NIC. Sledovat ji lze online.

Ladislav Hagara | Komentářů: 0
15.11. 01:11 | Komunita

V září proběhl v Madridu Open Source CubeSat Workshop 2018. Videozáznamy přednášek byly zveřejněny na YouTube.

Ladislav Hagara | Komentářů: 1
15.11. 00:55 | Zajímavý software

Společnost Amazon představila Amazon Corretto. Jedná se o fork a distribuci OpenJDK (Open Java Development Kit) s dlouhodobou podporou od Amazonu. Ke stažení je preview verze 8. V plánu je také verze 11. Zdrojové kódy jsou k dispozici na GitHubu. Jedná se o reakci na oznámení společnosti Oracle, že bezplatné aktualizace její Javy nebude možné po lednu 2019 používat komerčně. Název Coretto vychází z Caffè corretto, tj. espressa s alkoholem.

Ladislav Hagara | Komentářů: 13
14.11. 12:44 | Nová verze

Po roce vývoje od vydání verze 5.2.0 byla vydána verze 5.3.0 svobodného integrovaného vývojového prostředí KDevelop (Wikipedie). Novinkou je analyzátor Clazy. Vylepšena byla podpora programovacích jazyků C++, PHP a Python. Ke stažení a k vyzkoušení je i binární balíček s KDevelopem 5.3.0 ve formátu AppImage.

Ladislav Hagara | Komentářů: 0
14.11. 05:55 | Komunita

Ubuntu 19.04 bude mít kódové jméno Disco Dingo. Dle oznámení v diskusním listu ubuntu-devel-announce je ve vývojové verzi Disco Dinga výchozím Pythonem 3 verze 3.7. Perl byl aktualizován na verzi 5.28. OpenSSL 1.0 bude nahrazeno OpenSSL 1.1.1 LTS. Nové instalace Dinga budou mít sloučený /usr. Stane se tak 7 let po sloučení /usr ve Fedoře nebo Arch Linuxu.

Ladislav Hagara | Komentářů: 9
14.11. 02:22 | IT novinky

V pondělí a úterý proběhl v San Franciscu Chrome Dev Summit 2018. Přehled dění v příspěvcích na Chromium Blogu. Videozáznamy přednášek na YouTube. Představen byl například web pro webové vývojáře web.dev nebo rozšíření webového prohlížeče Chrome s názvem VisBug (YouTube) určené pro webdesignery. Slíbená je podpora Firefoxu.

Ladislav Hagara | Komentářů: 0
Jak nejčastěji otevíráte dokumenty na počítači?
 (91%)
 (3%)
 (5%)
Celkem 115 hlasů
 Komentářů: 10, poslední dnes 00:13
Rozcestník

Dotaz: 200 GB txt subor a sort -u

7.7. 18:52 tutanchamon
200 GB txt subor a sort -u
Přečteno: 2953×
Chcem dostat unikatne slova z 260 GB suboru. Ako na to casovo aj datovo co najefektivnejsie? Mam iba starsie dvojjadro s 4GB RAM a prepoctom idem k 80 hodinam triedenia a cca 500 GB na temp subory + vysledny subor... Dakujem za postrehy...

Řešení dotazu:


Odpovědi

7.7. 19:32 OldFrog {Ondra Nemecek} | skóre: 30 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Podle mě záleží, jak hodně se ta slova opakují. Naivním přístupem bych načetl slovo po slově a vkládal do Setu ve vhodném programovacím jazyce a ten Set nakonec serializoval. Výběrem vhodné implementace Setu by šlo docílit optimálního výkonu, asi na to budou i specializované knihovny. Šlo by to řešit po částech, aby se všechna aktuálně zpracovávaná data vešla do RAM - rozdělit soubor, zpracovat po částech, získané mezivýsledky zpracovat v druhém průchodu. Možná by stejnou úlohu zajistila i nějaká databáze (třeba MapDB a podobné).
-- OldFrog
7.7. 19:33 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Nacpal bych ta slova jako klíče do databáze DB4 a vypsal její obsah.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
8.7. 12:09 Lazar
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Co rozdělit soubor na desítky(stovky?) menších, stanovit unikátní seznam pro každý z nich a pak stanovit seznam unikátních slov pro sloučené dílčí seznamy? Těch unikátních slov snad bude relativně konečné množství, ne?
8.7. 14:15 Dikobraz Fik
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Příloha:
^^^^^^^^^^^^^^ pozrite si progress... poriesil som to takto - hadam to niekomu niekedy pomoze...
pv $1 | parallel --tmpdir tmp --pipe --files sort -u -T tmp -S512M  --parallel=2 | parallel --tmpdir tmp -Xj1 sort -u -T tmp -S1024M --parallel=2  -m {} ';' rm {} > $2
nutne definovat --tmpdir (u mna v aktualnom adresari) inac si zabijete /tmp (ak tam nemate dost miesta)
9.7. 12:25 uniq
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Preco si nepouzil program uniq?
9.7. 16:24 R
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Lebo pred jeho pouzitim sa musia aj tak data usporiadat programom sort?
9.7. 18:48 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Jo klíč by měl být OK. Ono těch slov zas tolik není:
# cat /usr/share/dict/words  | wc -l
38619
# cat /usr/share/dict/words  | wc -c
352846
Pokud by vyhledání klíče bylo rychlý (třeba hash), tak by to mohlo číst až rychlostí blízkou disku. Můj naivní kód v perlu, co parsuje asi 3.5GB lisp-like zdroják to zvládne na c2d asi za 30 minut, ale kromě hledání klíče to dělá i inserty do tisíců spojových seznamů apod (což je mnohem náročnější).
9.7. 19:25 OldFrog {Ondra Nemecek} | skóre: 30 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Pokud ovšem jde o slova z normálního „lidského“ jazyka...
-- OldFrog
10.7. 14:45 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Hmm to je vlastně pravda. Ale i tak ty klíče samozřejmě pomohou, jen to bude trvat dýl a sežere to víc času.
9.7. 22:47 Rockhopper
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
V prvé řadě je potřeba soubor zkomprimovat a řadit zkomprimovaný. Hrubý odhad bez znalosti typu dat cca. do 10 hodin. Na velikosti RAM víceméně nezáleží, stačí 16 MB, záleží na druhu komprese.
10.7. 09:08 rastos | skóre: 61 | blog: rastos
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
N=100000
split --lines=$N  vstup
for file in x*
do 
  cat $file | tr ' ' '\n' | sort -u > $file.usorted
  mv $file.usorted $file
done
cat x* | sort -u > vystup
Hodnotu N upraviť podľa potreby. To 'tr' je také neotesané riešenie, čo neberie do úvahy bodky, čiarky, atď. Možno by sa dalo nahradiť nejakým šikovnejším sed-om.
10.7. 09:22 dustin | skóre: 61 | blog: dustin
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Myslím, že pokud bude těch x* hodně, zahlásí bash u cat příliš dlouhý seznam parametrů. Ale to lze snadno vyřešit třeba přes find.

Jsou dvě jádra, tak by se to procházení x* mohlo obalit funkcí a xargsem spouštět dva procesy.
10.7. 11:01 rastos | skóre: 61 | blog: rastos
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Keď urobíš "wc -l vstup" a vydelíš výsledok 200, tak dostaneš počet riadkov na jeden súbor ktorý bude mat +- 1GB. Ten počet dáš split-u, a budeš mať 200 súborov. Aj keby si to delil 2000 tak budeš mať 2000 súborov po 100MB. To by nemuselo byť moc. Podstatné je, že každý ten kúsok sa tým "sort -u" značne zredukuje, takže aj ich spojenie na konci bude relatívne malé.
10.7. 11:07 dustin | skóre: 61 | blog: dustin
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Jasně, jen jsem upozorňoval, že bývá dobré na max. počet souborů přes wildcard myslet, je to pak nepříjemná chyba. I když, v bashi je každé ladění nepříjemné :-)
10.7. 10:01 〹
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Kolik unikátních slov očekáváš? Bavíme se o lidském jazyce?
Řešení 2× (Bystroushaak, cronin)
10.7. 12:46 OldFrog {Ondra Nemecek} | skóre: 30 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
Chtělo by to vzorek toho souboru. A nabízí se vyhlásit soutěž o nejrychlejší řešení a udělat porovnání použití různých technologií :-)
-- OldFrog
17.7. 07:55 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
A také dost záleží na tom, jestli to má být jednorázová akce nebo jestli je cílem napsat program, který se bude na podobně velkých souborech spouštět opakovaně. V prvním případě bude stačit něco, co bude přijatelně rychlé, a nemělo by smysl trávit hodinu práce navíc optimalizací, která zrychlí běh o hodinu (nebo třeba i čtyři). Ve druhém už by stálo zamyslet se nad datovou strukturou, která umožní rychlý insert a walkthrough (RB tree?).
12.7. 16:09 lertimir | skóre: 62 | blog: Par_slov
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
rozhodně bych netřídil původní soubor. použil bych algoritmus typu
setrideny-seznam-unikatnich-slov="prázndný seznam"

slovo=prectu-slovo()
while (slovo!=null){
  if (slovo "je v" setrideny-seznam-unikatnich-slov){ # náročnost operace O(log(N))
     zaradit(slovo, setrideny-seznam-unikatnich-slov) # pro balancované seznam to je tuším také O(log(N)), navíc v předchozím vyhledávání už bylo nalezeno, kde v tom seznamu by tohle slovo mělo být a není takže by ty operace mohly být i rychlejší než log protože není třeba hledat.
  }
}
pak v setrideny-seznam-unikatnich-slov je pořád setříděno a pokud to není těch slov fakt moc tak se to možná i vejde do paměti.
22.7. 20:04 python
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u
pokud se slova vejdou do RAM, tohle v pythonu bude svizne :
uniq = set()
with open('README.md') as f:
    for line in f:
        words = line.strip().split()
        for w in words:
            uniq.add(w)
print(len(uniq))
DaBler avatar 25.7. 01:15 DaBler | skóre: 13 | blog: dabler | Brno
Rozbalit Rozbalit vše Re: 200 GB txt subor a sort -u

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.