Actualmente, cuando GUARDO en HDFS, crea muchos archivos de pieza.¿TIENDA salida a un solo CSV?
¿Hay alguna forma de guardar en un solo archivo CSV?
Actualmente, cuando GUARDO en HDFS, crea muchos archivos de pieza.¿TIENDA salida a un solo CSV?
¿Hay alguna forma de guardar en un solo archivo CSV?
Usted puede hacer esto de varias maneras:
Para establecer el número de reductores para todos los opeations cerdo, se puede utilizar la propiedad default_parallel
- pero esto significa que cada paso será utilizar un único reductor, la disminución de rendimiento:
set default_parallel 1;
Antes de ALMACÉN llamando, si una de las operaciones ejecutar es (Cogroup, CROSS, DISTINCT, GROUP, JOIN (interior), JOIN (exterior), y ORDER BY), entonces tu c un uso de la palabra clave PARALLEL 1
para denotar el uso de un único reductor para completar esa orden:
GROUP a BY grp PARALLEL 1;
Ver Pig Cookbook - Parallel Features para más información
También puede utilizar el comando getmerge de Hadoop para fusionar todos aquellos parte- * archivos. Esto solo es posible si ejecuta sus scripts Pig desde el shell de Pig (y no desde Java).
Esto es una ventaja con respecto a la solución propuesta: como todavía puede usar varios reductores para procesar sus datos, entonces su trabajo puede correr más rápido, especialmente si cada reductor genera pocos datos.
grunt> fs -getmerge <Pig output file> <local file>
¡Buenas cosas, Chris, gracias! – JasonA
No creo que esto sea ideal ya que podría perder el error de memoria con muy pocos reductores en los datos de salida grandes. – FreeTymeKiyan