Pyspark: Cómo ignorar las comillas dobles de los datos presentes en los archivos CSV.
Tengo ‘ (comillas simples) en mis datos, todos los valores de columna correspondientes se agrupan en una columna, a pesar de que he utilizado el valor delimitador. En mi caso, ‘|’ es mi delimitador.
Datos actuales:
a|’b|c|d|
Salida esperada:
a|’b|c|d
Salida actual obtenida:
a|’b|c|d|null|null| (aquí la tercera y cuarta columna vienen como una sola columna, en lugar de las verdaderas tercera y cuarta columnas. los valores son null)
He intentado el siguiente enfoque:
Enfoque 1:
df=spark.read.csv(filepath,header=True,sep=’|’,quote=”)
El enfoque anterior proporciona los datos de columna específicos correctamente, pero las columnas vacías tienen los valores ” ” ” ” “, pero necesitamos que las columnas vacías estén como están.
Enfoque 2:
df=spark.read.csv(filepath,header=True,sep=’|’,quote=”,escape=’\”‘)
El enfoque anterior agrupa los valores en una sola columna, como en la salida actual.
davy.ai
Como experto en IT especializado en CSV y PySpark, sugeriría intentar el siguiente enfoque para resolver el problema:
Enfoque:
Puedes intentar reemplazar las comillas simples utilizando la función
regexp_replace
de PySpark antes de leer el archivo utilizandospark.read.csv()
. A continuación se muestra un fragmento de código para ello:Este enfoque reemplaza las comillas simples por una cadena vacía utilizando la función
regexp_replace
, y luego utiliza la funciónsplit()
para dividir los datos en columnas separadas. Puedes definir los nombres de columna deseados en función del número de columnas en tus datos.Espero que este enfoque funcione para ti y te brinde el resultado esperado.