substring in dataframe ermitteln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kani
User
Beiträge: 1
Registriert: Dienstag 14. Februar 2023, 08:51

Ich möchte in meinem Notebook in Asure Databricks mittels python eine weitere Spalte in einem Dataframe hinzufügen und dazu aus einer der enthaltenen Spalten einen Substring verwenden.
Der Substring wird korrekt übergeben, wenn ich feste Werte für die Startposition und Länge verwende. Wenn ich allerdings versuche, die Startposition dynamisch zu ermitteln, dann liefert die find-Funktion keinen Treffer.
Die "Spalte" in der die zu durchsuchenden Werte enthalten sind heißt "function_txt".

Bsp:
df_data = spark.read.format("delta").load("/mnt/data")\
.filter("start_dt >= '2023-02-01'")\
.select("start_dt", "Farbe", "function_txt", substring('function_txt','function_txt'.find('123'),5).alias('Farbnummer'))

Das Problem ist denke ich, dass 'function_txt'.find('123') immer eine -1 zurückliefert, weil 'function_txt' als string behandelt wird, und nicht den jeweiligen Wert des Dataframes übergibt. Ich finde aber nicht heraus, wie ich letzteres bewirken kann.
Vermutlich ist das so einfach, dass es nichtmal in einem Forum erwähnt wird und ich dazu nirgends eine Lösung finde. Deshalb wäre ich froh, wenn mir jmd. weiterhelfen kann.
Vielen Dank schonmal!
Antworten