Como tengo noted previously, Pig no soporta bien los archivos vacíos (0 bytes). Desafortunadamente, hay muchas maneras de crear estos archivos (incluso within Hadoop utilitities).¿Cómo utiliza Pig Hadoop Globs en una declaración de 'carga'?
Pensé que podría solucionar este problema cargando explícitamente solo los archivos que coinciden con una convención de nomenclatura dada en el LOAD statement usando Hadoop's glob syntax. Desafortunadamente, esto no parece funcionar, ya que incluso cuando uso un glob para filtrar a archivos de entrada conocidos, todavía me encuentro con la falla de 0 bytes mentioned earlier.
He aquí un ejemplo: Supongamos que tengo los siguientes archivos en S3:
- MyBucket/a/b/(0 bytes)
- MyBucket/a/b/myfile.log (> 0 bytes)
- MyBucket/a/b/yourfile.log (> 0 bytes)
Si utilizo una declaración de carga como esto en mi guión de cerdo:
myData = load 's3://mybucket/a/b/*.log as (...)
Supongo que Pig no se ahogaría en el archivo de 0 bytes, pero aún lo hace. ¿Hay algún truco para que Pig solo observe los archivos que coinciden con el patrón glob esperado?