Procesamiento de de cadena
Procesamiento de cadena
// 1. Leer el archivo como texto plano
Dataset<Row> rawData = spark.read().text("ruta/al/archivo.csv");
// 2. Extraer la primera línea como encabezado
String headerLine = rawData.first().getString(0);
String[] columnNames = headerLine.split(",");
// 3. Filtrar el encabezado
Dataset<Row> dataWithoutHeader = rawData.filter(row -> !row.getString(0).equals(headerLine));
// 4. Procesar las líneas con un parser CSV adecuado
Dataset<Row> processedData = dataWithoutHeader.map(row -> {
String line = row.getString(0);
CSVParser parser = new CSVParserBuilder()
.withSeparator(',')
.withQuoteChar('"')
.withIgnoreQuotations(false)
.build();
String[] values = parser.parseLine(line);
return RowFactory.create((Object[]) values);
}, Encoders.bean(Row.class));
// 5. Asignar nombres de columnas
for (int i = 0; i < columnNames.length; i++) {
processedData = processedData.withColumnRenamed("_"+i, columnNames[i].trim());
}
// 6. Mostrar resultados
processedData.show(false);
Comentarios
Publicar un comentario