Ich habe einen Funken DataFrame
namens df
, wie oben im Bild gezeigt. Es gibt eine Spalte mit dem Namen region
, die derzeit nur den Wert NE
hat. Es gibt eine separate Spalte namens address
mit vielen Adressen. Ich möchte die Beobachtungen von region
zu VA
ändern, wobei address
mit VA
endet. Wie kann ich das machen? Entweder funktionieren pyspark
oder sparkr
Befehle.
Antwort
das folgende Snippet sollte funktionieren. Diese Methode konvertiert den Datenrahmen in RDD und führt eine Zuordnungsoperation durch, um den Bereich entsprechend zu ändern.
>>> df = sc.parallelize([("NE","NE"), ("Luray, VA", "NE"), ("VA" ,"NE"), ("Richmond, VA", "NE")]).toDF(["address", "region"])
>>> df.rdd.map(lambda (x,y): (x,'VA' if x.endswith('VA') else y)).toDF(["address", "region"]).show()
+------------+------+
| address|region|
+------------+------+
| NE| NE|
| Luray, VA| VA|
| VA| VA|
|Richmond, VA| VA|
+------------+------+
der Ansatz ohne Konvertieren von Datenrahmen zu RDD würde wie folgt aussehen. Hinweis: Dieser Ansatz ist dem rdd-Ansatz vorzuziehen, da er leistungsfähiger ist und weniger Annahmen über das Schema enthält.
from pyspark.sql.functions import udf
df = sc.parallelize([("NE","NE"), ("Luray, VA", "NE"), ("VA" ,"NE"), ("Richmond, VA", "NE")]).toDF(["address", "region"])
regionfunc = udf(lambda x: 'VA' if x.endswith('VA') else x)
df.withColumn('region', regionfunc(df.address)).show()
+------------+------+
| address|region|
+------------+------+
| NE| NE|
| Luray, VA| VA|
| VA| VA|
|Richmond, VA| VA|
+------------+------+
Würde das funktionieren, selbst wenn es im 'DataFrame' mehr Spalten als 2 gibt? –
ja würde es aber die map lamba funktion muss geändert werden. alternativ können Sie mit Column Option das Dataframe definiert .. –
@GauravBansal aktualisiert die Antwort, die Datenframes verwendet und sollte für eine beliebige Anzahl von Spalten arbeiten .. –
- 1. Pandas filtern und
- 2. In einer Spalte filtern und Vorkommen eines Worts filtern
- 3. Excel Daten validieren und filtern
- 4. Wie filtern Groß- und Kleinschreibung
- 5. Onedrive-Anfrage suchen und filtern
- 6. SQL Beitreten und weiter filtern
- 7. Ganze Zeile filtern und löschen
- 8. Biztalk Port Group und Filtern
- 9. Wie mit Regex und Javascript filtern?
- 10. Sortieren, Filtern und Blättern in einem Modal
- 11. Reagieren/Redux Abrufen und Filtern von Daten
- 12. AngularJS: Wiederholen und Filtern nach Zahlenbereich
- 13. Excel VBA - Filtern und Kopieren in mehreren
- 14. Wie nach Feld filtern und Volltextsuche durchführen?
- 15. Unterschied zwischen jinja2 Funktionen und Filtern?
- 16. Kann nicht filtern und sucht mit filterrific
- 17. Pandas Filtern und Vergleichen von Daten
- 18. verschachtelte JSON Winkel übersetzen und filtern
- 19. orderBy funktioniert nicht mit Paginierung und Filtern
- 20. Wie filtern und jede Variable auf Matlab
- 21. Filtern von JSON-Daten und Drucken
- 22. Mongoose Abfrage mit Projekt und filtern
- 23. Gruppierung nach Monat und Filtern nach Quartal
- 24. Daten filtern und Werte kopieren VBA
- 25. Excel VBA-Skript zu filtern und Summe
- 26. SQLAlchemy - abfragt und Filtern verschachtelter jsonb Feld
- 27. Suchen und Filtern von Android ListView
- 28. MySQL-Abfrage mit verschiedenen Tabellen und Filtern
- 29. Sortieren, Gruppieren und Filtern von SQL-Ergebnismengen
- 30. Traversieren und Filtern eines Baumes in Haskell
Kasse [ 'endswith'] (https://spark.apache.org/docs/1.6.2/api/python/pyspark.sql.html#pyspark.sql.Column.endswith) Betreiber von' pysparks.sql.functions' – muon