Big Data Manipulation zum Spaß und Gewinn Teil 1

Big Data Manipulation zum Spaß und Gewinn Teil 1

Heutzutage scheint jeder über Big Data zu sprechen - aber was bedeutet es wirklich? Der Begriff wird in verschiedenen Situationen ziemlich mehrdeutig verwendet. Für die Zwecke dieses Artikels und der Reihe werden wir uns auf Big Data beziehen, wenn wir eine große Menge an Textdaten in jedem Format meinen (z. -menschlich-lesbares Format). Einige angezeigte Techniken können auch für binäre Daten gut funktionieren, wenn sie mit Pflege und Wissen verwendet werden.

Also, warum Spaß (Ref Titel)?

Umgang mit Gigabyte von Rohtextdaten in einem schnellen und effizienten Skript oder sogar mit einem Ein-Liner gut arbeiten und in der Lage sind, Dinge zu automatisieren. Wir können nie genug darüber lernen, wie wir mit Big Data umgehen können. Der nächste herausfordernde Text -Parse wird immer um die Ecke stehen.

Und warum profitieren?

Viele der Daten der Welt werden in großen textuellen Flatendateien gespeichert. Wussten Sie beispielsweise, dass Sie die vollständige Wikipedia -Datenbank herunterladen können? Das Problem ist, dass diese Daten häufig in einem anderen Format wie HTML, XML oder JSON oder sogar proprietären Datenformaten formatiert sind! Wie bringt man es von einem System zum anderen?? Wenn Sie wissen, wie Sie Big Data analysieren und gut analysieren können. Einfach? Oft lautet die Antwort "Nein", und daher hilft es, wenn Sie wissen, was Sie tun. Einfach? Idem. Profitabel? Regelmäßig ja, vor allem, wenn Sie bei der Handhabung und Verwendung von Big Data gut werden.

Der Umgang mit Big Data wird auch als "Data Wrangling" bezeichnet. Ich habe vor über 17 Jahren angefangen, mit Big Data zu arbeiten, also hoffentlich gibt es ein oder zwei Dinge, die Sie aus dieser Serie abholen können. Im Allgemeinen ist die Datentransformation als Thema halbendlos (Hunderte von Drittanbietern sind für jedes bestimmte Textformat verfügbar), aber ich werde mich auf einen bestimmten Aspekt konzentrieren, der für die Analyse von Textdaten gilt. Verwenden der Bash -Befehlszeile, um jede Art von Daten zu analysieren. Manchmal ist dies möglicherweise nicht die beste Lösung (ich.e. Ein vorgefertigtes Tool kann einen besseren Job machen), aber diese Serie ist speziell für all diese (viele) Zeiten, in denen kein Tool verfügbar ist, um Ihre Daten "genau richtig" zu erhalten.

In diesem Tutorial lernen Sie:

Big Data Manipulation zum Spaß und Gewinn Teil 1
  • So beginnen Sie mit Big Data Wrangling / Parsen / Handhabung / Manipulation / Transformation
  • Welche Bash -Tools zur Verfügung stehen, um Ihnen zu helfen, speziell für textbasierte Anwendungen
  • Beispiele, die unterschiedliche Methoden und Ansätze zeigen

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Linux-Verteilungsunabhängige
Software BASH -Befehlszeile, Linux -basiertes System
Andere Jedes Dienstprogramm, das standardmäßig nicht in der Bash -Shell enthalten ist sudo apt-Get Installieren Sie den Dienstprogramm (oder yum install Für Redhat -basierte Systeme)
Konventionen # - Erfordert, dass Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden sudo Befehl
$-erfordert, dass Linux-Commands als regulärer nicht privilegierter Benutzer ausgeführt werden

Nehmen wir an, Sie haben die folgenden Bereitschaft
- A: Ihre Quelldaten (Text) Eingabedatei in jedem Format (JSON, HTML, MD, XML, Text, TXT, CSV oder ähnliches)
- B: Eine Vorstellung davon, wie die Zieldaten nach Ihrer Zielanwendung oder direkter Verwendung suchen sollten

Sie haben bereits alle verfügbaren Tools untersucht, die für das Quelldatenformat relevant sind, und haben kein bereits bestehendes Tool gefunden, mit dem Sie von A nach B gelangen können.

Für viele Online -Unternehmer ist dies der Punkt, an dem das Abenteuer oft, vielleicht bedauerlicherweise, endet. Für Menschen, die mit Big Data-Handhabung erfahren haben, ist dies der Punkt, an dem das Fun Big Data Manipulationsabenteuer beginnt :-).

Es ist wichtig zu verstehen, welches Tool Ihnen helfen kann, was zu tun, und wie Sie jedes Tool zum Erreichen Ihres nächsten Schritts im Datenumwandlungsverfahren verwenden können. Wenn ich also in diese Serie tritt, werde ich eins nach ein-eins suchen, at Viele der in Bash erhältlichen Tools, die helfen können. Wir werden dies in Form von Beispielen tun. Wir werden mit einfachen Beispielen beginnen. Wenn Sie also bereits Erfahrung haben.

Beispiel 1: Datei, Katze, Kopf und Schwanz

Ich sagte, wir würden einfach anfangen, also lassen Sie uns zuerst die Grundlagen richtig machen. Wir müssen verstehen, wie unsere Quelldaten strukturiert sind. Dafür benutzen wir die Narren Datei, Katze, Kopf Und Schwanz. In diesem Beispiel habe ich einen zufälligen Teil der Wikipedia -Datenbank heruntergeladen.

$ ls Enwiki-latest-Seiten-Artikel-Multistream-Index19.TXT-P30121851P31308442.BZ2 $ BZIP2 -D ENWIKI-LATEST-PAGES-Multistream-Index19.TXT-P30121851P31308442.BZ2 $ ls Enwiki-latest-Seiten-Artikel-Multistream-Index19.TXT-P30121851P31308442 $ Datei Enwiki-latest-Pages-Articles-Multistream-Index19.TXT-P30121851P31308442 ENWIKI-LATEST-PAGE-ARTICE-Multistream-Index19.TXT-P30121851P31308442: UTF-8 Unicode Text $ 


Nach dem Entpacken des Downloads BZ2 (BZIP2) Datei verwenden wir die Datei Befehl zur Analyse des Inhalts der Datei. Die Datei ist textbasiert, UTF-8 Unicode-Format, wie durch die bestätigt UTF-8 Unicode Text Ausgabe nach dem Dateinamen. Großartig, wir können damit arbeiten; Es ist "Text" und das alles, was wir im Moment wissen müssen. Schauen wir uns den Inhalt an Katze, Kopf Und Schwanz:

$ cat Enwiki-latest-Seiten-Artikel-Multistream-Index19.TXT-P30121851P31308442 | Kopf -n296016 | Tail -n1 269019710: 31197816: Linux ist mein Freund 

Ich wollte beispielhaft veranschaulichen, wie man benutzt Katze, Dieser Befehl hätte aber auch einfacher konstruiert worden sein können wie:

$ head -n296016 Enwiki-latest-Seiten-Artikel-Multistream-Index19.TXT-P30121851P31308442 | Tail -n1 269019710: 31197816: Linux ist mein Freund 

Wir haben A, EHRM, zufällig… (oder nicht so zufällig für diejenigen, die mich kennen;)… Zeile aus der Datei, um zu sehen, welche Art von Text dort ist. Wir können sehen, dass es scheinbar 3 Felder geben, getrennt von durch :. Die ersten beiden sehen numerisch aus, die dritte textbasiert. Dies ist ein guter Moment, um den Punkt anzusprechen, dass man mit solchen Annahmen vorsichtig sein muss. Annahme (und/oder Vermutung) ist die Mutter aller Fehler. Es ist oft sinnvoll, die folgenden Schritte auszuführen, insbesondere wenn Sie mit Daten weniger vertraut sind

  1. Erforschen Sie die Datenstruktur online - gibt es eine offizielle Datenlegende, Datenstrukturdefinition?
  2. Erforschen Sie ein Beispiel online, wenn die Quelldaten online verfügbar sind. Zum Beispiel könnte man zum obigen Beispiel Wikipedia nach '269019710', '31197816' und 'Linux is My Friend' durchsuchen. Sind die Verweise auf diese Zahlen? Werden diese Zahlen in URLs und/oder Artikel -IDs verwendet oder beziehen sich auf etwas anderes usw.

Der Grund dafür ist, im Grunde mehr über die Daten zu erfahren, und insbesondere die Struktur. In diesem Beispiel sieht alle ziemlich einfach aus, aber wenn wir ehrlich zu uns selbst sind, wissen wir nicht, was die ersten beiden Zahlen bedeuten, und wir wissen nicht, ob der Text 'Linux is My Friend' auf einen Artikel -Titel, DVD -Titel, bezieht , oder Buchcover usw. Sie können sehen, wie Big Data -Handhabung Abenteuer sein kann, und Datenstrukturen können und viel komplexer werden als dies.

Lasst uns für einen Moment sagen, dass wir oben die Punkte 1 und 2 Aktionen wirken, und wir haben mehr über die Daten und die Struktur gelernt. Wir haben (fiktiv) gelernt, dass die erste Zahl eine Klassifizierungsgruppe für alle literarischen Werke ist, und die zweite ist eine bestimmte und eindeutige Artikel -ID. Wir haben auch aus unserer Forschung gelernt, das : ist in der Tat ein klares und etabliertes Feldabscheider, das nur für die Feldtrennung verwendet werden kann. Schließlich listet der Text im dritten Feld den tatsächlichen Titel der literarischen Arbeit auf. Auch dies handelt.

Wenn keine Daten für die Daten oder ihre Struktur verfügbar sind, können Sie zunächst einige Annahmen über die Daten (durch Forschung) treffen und sie aufschreiben, und verifizieren Sie die Annahmen gegen alle verfügbaren Daten, um festzustellen, ob die Annahmen stehen. Regelmäßig, wenn nicht oft, ist dies der einzige Weg, um Big Data wirklich zu verarbeiten. Manchmal ist eine Kombination aus beiden verfügbar; Einige leichte Syntaxbeschreibung in Kombination mit Forschungen und leichten Annahmen über die Daten, z \N, \R, \ r \ n, \\ 0) usw. Je richtig Sie es erhalten, desto einfacher und genauer Ihre Daten rangeln!

Als nächstes werden wir überprüfen, wie genau unsere entdeckten Regeln sind. Überprüfen Sie immer Ihre Arbeit mit den tatsächlichen Daten!

Beispiel 2: Grep und WC

In Beispiel 1 kamen wir zu dem Schluss, dass das erste Feld die Klassifizierungsgruppe für alle literarischen Werke war. Lassen Sie uns logischerweise versuchen, dies zu überprüfen ..

$ grep '269019710' Enwiki-latest-Seiten-Artikel-Multistream-Index19.TXT-P30121851P31308442 | wc -l 100 $ wc -l enwiki-latest-pages-artikel-multistream-Index19.TXT-P30121851P31308442 329956 ENWIKI-LATEST-PAGES-ATICE-Multistream-Index19.TXT-P30121851P31308442 


Hmmm. Wir haben 100 literarische Arbeiten in einer Datei mit ca. 330.000 Leitungen. Das scheint nicht sehr richtig zu sein. Da wir nur einen kleinen Teil der Wikipedia -Datenbank heruntergeladen haben, ist es immer noch möglich. Lassen Sie uns den nächsten Artikel überprüfen. Ein eindeutiges ID -zweites Feld.

$ grep '31197816' Enwiki-latest-Seiten-Artikel-Multistream-Index19.TXT-P30121851P31308442 269019710: 31197816: Linux ist mein Freund 

Sehr cool. Auf den ersten Blick scheint das genau zu sein, da es nur eine einzige Linie gibt, die übereinstimmt.

Das dritte Feld wäre nicht so einfach zu überprüfen, ob wir prüfen könnten, ob der Text mindestens eindeutig ist:

$ grep--Binärdateien = Text 'Linux ist mein Freund' Enwiki-latest-Pages-Articles-Multistream-Index19.TXT-P30121851P31308442 269019710: 31197816: Linux ist mein Freund 

Ok, der Titel scheint einzigartig zu sein.

Beachten Sie auch, dass dem Grep eine neue Option hinzugefügt wurde, nämlich --Binärdateien = Text, Das ist eine sehr wichtige Option für alle Grep Befehle ab heute für jeden Grep Befehl, dass Sie im Folgenden in all Ihren Daten (ein weiterer anwendbarer Begriff) in all Ihren Daten schreiben. Ich habe es im vorherigen nicht benutzt Grep Befehle zum Speichern von Komplexität. Warum ist es also so wichtig, dass Sie fragen können? Der Grund dafür ist, dass bei Textdateien häufig Sonderzeichen enthalten, insbesondere Tools wie Grep die Daten als binär, während es sich tatsächlich um Text handelt.

Manchmal führt dies zu Grep nicht richtig funktionieren und die Ergebnisse undefiniert werden. Wann immer ich einen Grep schreibe, fast immer (es sei denn, ich bin ziemlich zuversichtlich, dass die Daten nicht binär sind) --Binärdateien = Text wird mit inbegriffen sein. Es stellt ledig Grep wird noch richtig funktionieren. Beachten Sie, dass dies für einige andere Tools wie wie sed die standardmäßig bewusster/fähiger zu sein scheinen. Zusammenfassung; Verwenden Sie immer --Binärdateien = Text Für Ihre Grep -Befehle.

Zusammenfassend haben wir unsere Forschung besorgt; Die Zahl im ersten Feld scheint keineswegs alles literarische Werke zu sein, die auf Wikipedia aufgeführt sind, auch wenn dies eine Teilmenge der Gesamtdaten ist, obwohl dies möglich ist.

Dies unterstreicht dann die Notwendigkeit eines Hin- und Her-Prozesses!). Wir könnten dies als "Big Data Mapping" bezeichnen und einen weiteren Begriff für mehr oder weniger denselben Gesamtprozess einführen. Big Data manipulieren. Zusammenfassend ist der Prozess, zwischen den tatsächlichen Daten, den Tools, mit denen Sie zusammenarbeiten.



Je besser wir unsere Daten verstehen, desto besser können wir damit umgehen. Irgendwann nimmt die Lernkurve für neue Tools allmählich ab, und die Lernkurve zum besseren Verständnis jedes neuen Datensatzes, der behandelt wird. Dies ist der Punkt, an dem Sie wissen, dass Sie ein Experte für Big Data -Transformation sind, da Ihr Fokus nicht mehr auf den Tools liegt - die Sie inzwischen wissen - sondern auf den Daten selbst, was zu einem schnelleren und besseren Endergebnis insgesamt führt!

Im nächsten Teil der Serie (von dem dies der erste Artikel ist) werden wir uns mehr Tools ansehen, die Sie für die Manipulation von Big Data verwenden können.

Möglicherweise sind Sie auch daran interessiert, unsere kurzen, halbbezogenen Abrufwebseiten mit dem WGet Curl- und Lynx-Artikel zu lesen, der zeigt, wie Webseiten sowohl in HTML- als auch in Text/TXT-basierten Format abgerufen werden können. Verwenden Sie dieses Wissen immer verantwortungsbewusst (ich.e. Überlasteten Server nicht und holen Sie sich nur öffentlich zugänglich, kein Urheberrecht oder CC-0 usw. usw. Daten/Seiten) und stets überprüfen, ob es eine herunterladbare Datenbank/einen Datensatz der Daten gibt, an denen Sie interessiert sind. Dies wird sehr bevorzugt, um Webseiten individuell abzurufen.

Abschluss

In diesem ersten Artikel in der Serie haben wir die Manipulation von Big Data in Bezug auf unsere Artikelserie definiert und festgestellt, warum Big Data Manipulation sowohl Spaß als auch lohnend sein kann. Man könnte zum Beispiel innerhalb der zutreffenden gesetzlichen Grenzen nehmen! - Ein großer öffentlich -öffentlich -domänen -Textdatensatz und verwenden Sie Bash -Dienstprogramme, um ihn in das gewünschte Format zu verwandeln und dasselbe online zu veröffentlichen. Wir haben uns verschiedene Bash -Tools angesehen, die für die Manipulation von Big Data verwendet werden können, und untersuchten Beispiele auf der Grundlage der öffentlich verfügbaren Wikipedia -Datenbank.

Genießen Sie die Reise, aber denken Sie immer daran, dass Big Data zwei Seiten hat; Eine Seite, auf der Sie die Kontrolle haben, und ... na ja ... eine Seite, auf der die Daten die Kontrolle haben. Halten Sie eine wertvolle Zeit für Familie, Freunde und mehr zur Verfügung (31197816!), bevor er sich verirrte, um die unzähligen Big Data da draußen zu analysieren!

Wenn Sie bereit sind, mehr zu erfahren, gibt es eine Big -Data.

Verwandte Linux -Tutorials:

  • Big Data Manipulation zum Spaß und Gewinn Teil 3
  • Big Data Manipulation zum Spaß und Gewinn Teil 2
  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Verschachtelte Schleifen in Bash -Skripten
  • Mastering -Bash -Skriptschleifen beherrschen
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Grundlagen der Computermathematik: Binär, Dezimal, hexadezimal, Oktal
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen