java - tutorial - Cómo usar.jar en un archivo de cerdo
mapreduce java example (1)
Tengo dos archivos de entrada smt.txt y smo.txt. El archivo jar lee los archivos de texto y divide los datos de acuerdo con alguna regla que se describe en el archivo java. Y el archivo porcino lleva estos datos a los archivos de salida con mapreduce.
register ''maprfs:///user/username/fl.jar'';
DEFINE FixedLoader fl();
mt = load ''maprfs:///user/username/smt.txt'' using FixedLoader(''-30'',''30-33'',...........) AS (.........);
mo = load ''maprfs:///user/username/smo.txt*'' using FixedLoader(''-30'',''30-33'',.....) AS (......);
store mt into ''maprfs:///user/username/mt_out'' using JsonStorage();
store mo into ''maprfs:///user/username/mo_out'' using JsonStorage();
y una parte del código de Java como en el siguiente. (El contenido de los métodos no son necesarios, creo):
package com.mapr.util;
import org.apache.hadoop.mapreduce.lib.input.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.io.*;
import org.apache.pig.*;
import org.apache.pig.data.*;
import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.*;
import java.util.*;
import java.io.*;
public class FixedLoader extends LoadFunc
{
............
}
Cuando ejecuto este programa porcino en una instrucción con el comando "pig -x mapreduce sample.pig", di un mensaje de error:
ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: No se pudo resolver com.mapr.util.FixedLoader usando imports: [, org.apache.pig.builtin., Org.apache.pig.impl.builtin. ]
¿Cómo puedo importarlos a mi proyecto o hay sugerencias / soluciones para ejecutar este programa?
FixedLoader
definir FixedLoader
con su nombre completo de paquete:
register ''maprfs:///user/username/fl.jar'';
DEFINE FixedLoader com.mapr.util.FixedLoader();
...
Registre también todas las jarras de dependencia de terceros que se usan en su UDF personalizada.