Use este código, ayudará a convertir el archivo csv a avro. Aquí tenemos un ejemplo de txt a avro, use este código para convertir el archivo csv a avro.
Estos son algunos enlaces para su referencia:
1.Convierta datos CSV a Avro Data – DZone Big Data
2.https: //svn.apache.org/repos/asf…
- Si convierto un archivo [protegido por correo electrónico] en un archivo WAV, luego lo vuelvo a convertir a [protegido por correo electrónico] , ¿será el nuevo archivo MP3 igual al original?
- ¿Qué es una gran herramienta de conversión de EDB a PST?
- Cómo saber si alguien usó un convertidor en línea para convertir un archivo .jpeg a PDF / MS Word
- Cómo mostrar sangrado en un archivo JPEG (en Illustrator)
- ¿Cuál es la solución perfecta para convertir un archivo OLM a un formato de archivo PST?
3.https: //svn.apache.org/repos/asf…
paquete org.apache.avro.tool;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.InputStream;
importar java.io.PrintStream;
import java.nio.ByteBuffer;
import java.util.List;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
import org.apache.avro.Schema;
import org.apache.avro.file.CodecFactory;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.generic.GenericDatumWriter;
/ ** Lee un archivo de texto en un archivo de datos Avro.
* *
* Puede aceptar un nombre de archivo y un URI de archivo HDFS o stdin. Puede escribir en un archivo
* nombre, un URI de HDFS o stdout. * /
La clase pública FromTextTool implementa la herramienta {
Cadena estática privada final TEXT_FILE_SCHEMA =
“\” bytes \ “”;
@Anular
public String getName () {
devolver “fromtext”;
}
@Anular
public String getShortDescription () {
return “Importa un archivo de texto en un archivo de datos avro”;
}
@Anular
public int run (InputStream stdin, PrintStream out, PrintStream err,
List args) lanza Exception {
OptionParser p = nuevo OptionParser ();
OptionSpec level = Util.compressionLevelOption (p);
OptionSpec codec = Util.compressionCodecOption (p);
OptionSet opts = p.parse (args.toArray (nueva cadena [0]));
List nargs = (List ) opts.nonOptionArguments ();
if (nargs.size ()! = 2) {
err.println (“Se esperaba 2 args: from_file to_file (nombres de archivo locales,” +
“Uado de Hadoop, o ‘-‘ para stdin / stdout”);
p.printHelpOn (err);
retorno 1;
}
CodecFactory codecFactory = Util.codecFactory (opciones, códec, nivel);
BufferedInputStream inStream = Util.fileOrStdin (nargs.get (0), stdin);
BufferedOutputStream outStream = Util.fileOrStdout (nargs.get (1), out);
DataFileWriter writer =
nuevo DataFileWriter (nuevo GenericDatumWriter ());
writer.setCodec (codecFactory);
writer.create (Schema.parse (TEXT_FILE_SCHEMA), outStream);
ByteBuffer line = ByteBuffer.allocate (128);
boolean returnSeen = falso;
byte [] buf = nuevo byte [8192];
for (int end = inStream.read (buf); end! = -1; end = inStream.read (buf)) {
for (int i = 0; i <end; i ++) {
int b = buf [i] & 0xFF;
if (b == ‘\ n’) {// nueva línea
if (! returnSeen) {
System.out.println (“Writing line =” + line.position ());
line.flip ();
escritor.append (línea);
line.clear ();
} más {
returnSeen = falso;
}
} else if (b == ‘\ r’) {// return
line.flip ();
escritor.append (línea);
line.clear ();
returnSeen = verdadero;
} más {
if (line.position () == line.limit ()) {// reasigna una línea más larga
ByteBuffer tempLine = ByteBuffer.allocate (line.limit () * 2);
line.flip ();
tempLine.put (línea);
línea = tempLine;
}
line.put ((byte) b);
returnSeen = falso;
}
}
}
escritor.close ();
inStream.close ();
devuelve 0;
}
}