Zeilen filtern, indem Sie verschiedene Werte in einer Spalte in PySpark
Sagen wir, ich habe die folgende Tabelle:
+--------------------+--------------------+------+------------+--------------------+
| host| path|status|content_size| time|
+--------------------+--------------------+------+------------+--------------------+
|js002.cc.utsunomi...|/shuttle/resource...| 404| 0|1995-08-01 00:07:...|
| tia1.eskimo.com |/pub/winvn/releas...| 404| 0|1995-08-01 00:28:...|
|grimnet23.idirect...|/www/software/win...| 404| 0|1995-08-01 00:50:...|
|miriworld.its.uni...|/history/history.htm| 404| 0|1995-08-01 01:04:...|
| ras38.srv.net |/elv/DELTA/uncons...| 404| 0|1995-08-01 01:05:...|
| cs1-06.leh.ptd.net | | 404| 0|1995-08-01 01:17:...|
|dialip-24.athenet...|/history/apollo/a...| 404| 0|1995-08-01 01:33:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:35:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:36:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:36:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:36:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:36:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:36:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:36:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:37:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:37:...|
| h96-158.ccnet.com |/history/apollo/a...| 404| 0|1995-08-01 01:37:...|
|hsccs_gatorbox07....|/pub/winvn/releas...| 404| 0|1995-08-01 01:44:...|
|www-b2.proxy.aol....|/pub/winvn/readme...| 404| 0|1995-08-01 01:48:...|
|www-b2.proxy.aol....|/pub/winvn/releas...| 404| 0|1995-08-01 01:48:...|
+--------------------+--------------------+------+------------+--------------------+
Wie ich den filter in dieser Tabelle haben nur unterschiedliche Wege in PySpark?
Aber sollte die Tabelle enthält alle Spalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, speichern Sie die Zeilen, wo alle Werte in bestimmte Spalten unterscheiden, Sie zu rufen
dropDuplicates
Methode auf DataFrame.Wie bei meinem Beispiel:
wo Pfad ist die Spalte name
Als für tuning, welche Aufzeichnungen aufbewahrt werden und verworfen, wenn Sie arbeiten können, Ihre Bedingungen in einem Fenster Ausdruck, den Sie verwenden können, so etwas wie dieses. Dies ist in scala (mehr oder weniger), aber ich denke, Sie können es in PySpark auch.
val Window = Fenster.parititionBy('Spalten'zu'machen,'eindeutig ist).orderBy('conditionToPutRowToKeepFirst)
dataframe.withColumn("row_number",row_number().over(window)).where('row_number===1).drop('row_number)