Je suis assez nouveau pour spark et je voudrais effectuer une opération sur une colonne d'une trame de données afin de remplacer tous les ,
dans la colonne avec .
Supposons qu'il existe un cadre de données x et une colonne x4
x4
1,3435
1,6566
-0,34435
Je veux que la sortie soit aussi
x4
1.3435
1.6566
-0.34435
Le code que j'utilise est
import org.Apache.spark.sql.Column
def replace = regexp_replace((x.x4,1,6566:String,1.6566:String)x.x4)
Mais j'obtiens l'erreur suivante
import org.Apache.spark.sql.Column
<console>:1: error: ')' expected but '.' found.
def replace = regexp_replace((train_df.x37,0,160430299:String,0.160430299:String)train_df.x37)
Toute aide sur la syntaxe, la logique ou tout autre moyen approprié serait très appréciée
Voici un exemple reproductible, en supposant que x4
Est une colonne de chaîne.
import org.Apache.spark.sql.functions.regexp_replace
val df = spark.createDataFrame(Seq(
(1, "1,3435"),
(2, "1,6566"),
(3, "-0,34435"))).toDF("Id", "x4")
La syntaxe est regexp_replace(str, pattern, replacement)
, ce qui se traduit par:
df.withColumn("x4New", regexp_replace(df("x4"), "\\,", ".")).show
+---+--------+--------+
| Id| x4| x4New|
+---+--------+--------+
| 1| 1,3435| 1.3435|
| 2| 1,6566| 1.6566|
| 3|-0,34435|-0.34435|
+---+--------+--------+