Me pregunto, como dije en el título, cómo eliminar el primer carácter de una columna de cadena de chispa, para los dos casos siguientes:

val myDF1 = Seq(("£14326"),("£1258634"),("£15626"),("£163262")).toDF("A")
val myDF2 = Seq(("a14326"),("c1258634"),("t15626"),("f163262")).toDF("A")
myDF1.show
myDF2.show

+--------+
|       A|
+--------+
|£14326  |
|£1258634|
|£15626  |
|£163262 |
+--------+

+--------+
|     A  |
+--------+
|a14326  |
|c1258634|
|t15626  |
|f163262 |
+--------+

Me gustaría obtener:

+--------+-------+
|       A|      B|
+--------+-------+
|£14326  |  14326|
|£1258634|1258634|
|£15626  |  15626|
|£163262 | 163262|
+--------+-------+

+--------+-------+
|       A|      B|
+--------+-------+
|a14326  |14326  |
|c1258634|1258634|
|t15626  |15626  |
|f163262 |163262 |
+--------+-------+

¿Tienes idea?

1
a.moussa 18 oct. 2019 a las 16:35

1 respuesta

La mejor respuesta

Puedes hacer algo como esto.

myDF1.show
+------+
|     A|
+------+
|£14326|
|£12586|
|£15626|
|£16326|
+------+

myDF1.withColumn("B", expr("substring(A, 2, length(A))")).show
+------+-----+
|     A|    B|
+------+-----+
|£14326|14326|
|£12586|12586|
|£15626|15626|
|£16326|16326|
+------+-----+
4
Piyush Patel 18 oct. 2019 a las 14:07