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!