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)