Saltar al contenido

PySpark: cómo especificar una columna con coma como decimal

Sé libre de compartir nuestra página y códigos en tus redes, danos de tu ayuda para hacer crecer nuestra comunidad.

Solución:

No podrá leerlo como un flotante debido al formato de los datos. Tienes que leerlo como un stringlímpialo y luego haz que flote:

from pyspark.sql.functions import regexp_replace
from pyspark.sql.types import FloatType

df = spark.read.option("headers", "true").option("inferSchema", "true").csv("my_csv.csv", sep=";")
df = df.withColumn('revenue', regexp_replace('revenue', '\.', ''))
df = df.withColumn('revenue', regexp_replace('revenue', ',', '.'))
df = df.withColumn('revenue', df['revenue'].cast("float"))

Probablemente puedas encadenar todo esto también:

df = spark.read.option("headers", "true").option("inferSchema", "true").csv("my_csv.csv", sep=";")
df = (
         df
         .withColumn('revenue', regexp_replace('revenue', '\.', ''))
         .withColumn('revenue', regexp_replace('revenue', ',', '.'))
         .withColumn('revenue', df['revenue'].cast("float"))
     )

Tenga en cuenta que no lo he probado, por lo que puede haber un error tipográfico o dos.

valoraciones y reseñas

Si eres capaz, puedes dejar un artículo acerca de qué te ha gustado de este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *