Oi Tabata,
A função split também aceita expressões regulares então podemos passar mais de um caractere de separação em uma única chamada. Seria assim:
# Instalando o pyspark
!pip install pyspark
# Iniciando a SparkSession
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
Considerando o seguinte DataFrame de exemplo:
data = [('R$ 300.000/mês',), ('R$ 1.200.000.000/mês',)]
colName = ['Valor']
df = spark.createDataFrame(data, colName)
df.show()
Valor |
---|
R$ 300.000/mês |
R$ 1.200.000.000/mês |
Precisamos passar para a função split uma expressão regular que identifique os espaços em branco e o caractere /. Então podemos construir a expressão da seguinte forma: "\s|/".
Onde,
- \s - representa os espaços em branco
- | - seria o operador pipe que funciona como o operador lógico OU
- / - o caractere /
O caractere | (pipe) representa uma ocorrência OU a outra, ou seja, espaço em branco OU o caractere /.
from pyspark.sql.functions import split, col
df.withColumn("Valor", split(col("Valor"), "\s|/")).show(truncate=False)
Valor |
---|
[R$, 300.000, mês] |
[R$, 1.200.000.000, mês] |
Utilizando o getItem(1) obtemos apenas os valores.
df = df.withColumn("Valor", split(col("Valor"), "\s|/").getItem(1))
df.show(truncate=False)
Valor |
---|
300.000 |
1.200.000.000 |
Espero ter ajudado