Pandas ist eine Bibliothek, die verschiedene Daten verarbeiten kann und sich auf eine tabellarische Datenstruktur namens DataFrame konzentriert. Es ist eine Tabelle in der Datenbank. Wenn Sie also mit SQL vertraut sind, können Sie sofort loslegen. Vertraut mit denen, die Daten mit Python analysieren.
Es gibt viele Hörensageninformationen, aber ich denke, sie wurden dem Entwicklungsteam auf diese Weise vorgestellt.
――Die Hybridisierung von lokal und Cloud schreitet voran, und der Datenbankspeicher wird immer verteilter. --Datenflussverwaltung wird zu einem Problem, und Luigi wird eingeführt, um Datenflüsse in Python zu erstellen.
Da der fehlende Wert NaN als Float behandelt wird, wird die gesamte Spalte in den Float umgewandelt, sobald der fehlende Wert in der int-Spalte gemischt wird. Wenn die Typinformationen beschädigt sind, handelt es sich in der Regel um ein Problem, insbesondere wenn sie an die Datenbank gesendet werden.
>>> s = pd.Series([0, 1, 2])
>>> s[2]
2
>>> s[1] = np.nan
>>> s[2]
2.0
http://pandas.pydata.org/pandas-docs/stable/missing_data.html
Mit nur einer kleinen Indexoperation können Sie in eine ungewisse Situation gezwungen werden, ob es sich um Ansicht oder Kopie handelt (!?)
def do_something(df):
foo = df[['bar', 'baz']] # Is foo a view? A copy? Nobody knows!
# ... many lines here ...
foo['quux'] = value # We don't know whether this will modify df or not!
return foo
http://pandas.pydata.org/pandas-docs/stable/indexing.html#why-does-assignment-fail-when-using-chained-indexing
In diesem Fall kann die Qualität nicht garantiert werden, unabhängig davon, wie viele Tests durchgeführt werden. Die Warnung kann zum Zeitpunkt der Ausführung ausgegeben werden, aber der einzige verdächtige Teil besteht darin, die Kopiermethode explizit aufzurufen.
Wenn Sie sich das Protokoll einer bestimmten Charge ansehen, besteht eine Wahrscheinlichkeit von 1%, dass diese stirbt. Es gibt viele speicherbezogene Elemente, und Core-Dumps multiplizieren sich. Es friert auch ein.
*** glibc detected *** /usr/local/anaconda/bin/python: free(): invalid pointer:
Fatal Python error: GC object already tracked
People People People > Plötzlicher Tod <  ̄Y^Y^Y^Y ̄
Da es sich um eine Python 2.7 & Pandas 0.17-Umgebung handelt, kann sie durch Aktualisierung gelöst werden ....
In zukünftigen Neuentwicklungen ist es eine Politik, Pandas nicht so oft wie möglich zusammen mit Luigi zu verwenden. Immerhin war Pandas für die Analyse gedacht, und es war überhaupt nicht gut, es in Chargen zu verwenden ...
Selbst für analytische Zwecke habe ich persönlich das Gefühl, dass das Referenzproblem schwerwiegend ist. Daher werde ich Spark verwenden, wenn ich in Zukunft einen DataFrame möchte. Beachten Sie, dass die Kompilierungsprüfung für die wesentlichen Schemaoperationen nicht funktioniert, obwohl sie in statisch typisiertem Scala geschrieben werden kann. Bibliothek mit Katzen rahmenlosもありますが、あくまでproof-of-conceptです。
Übrigens hat Luigi für jede Aufgabe die gleiche Qualität und geht von einem Ausgabedaten aus, sodass er je nach dem zusammenzustellenden Datenfluss möglicherweise nicht geeignet ist. Und Luigis Entwickler Spotify scheint auf Google Cloud Dataflow zu migrieren und Scalas Wrapper Library Scio zu entwickeln.
Scio - A Scala API for Google Cloud Dataflow & Apache Beam
Recommended Posts