apache pig - Left padding a string in pig -



apache pig - Left padding a string in pig -

i left pad string info type field 0-s. there way that? need have fixed length (40) values.

thanks in advance, clairvoyant

the number of zeros needs generate dynamically based on length of remaining string, don't think possible in native pig. much possible in udf.

input.txt

11111 222222222 33 org.apache.hadoop.util.nativecodeloader apachepig

pigscript:

register leftformat.jar; = load 'input.txt' using pigstorage() as(f1:chararray); b = foreach generate format.leftpad(f1); dump b;

output:

(0000000000000000000000000000000000011111) (0000000000000000000000000000000222222222) (0000000000000000000000000000000000000033) (0org.apache.hadoop.util.nativecodeloader) (0000000000000000000000000000000apachepig)

udf code: below java class file compiled , generated leftformat.jar leftpad.java

package format; import java.io.ioexception; import org.apache.commons.lang.stringutils; import org.apache.pig.evalfunc; import org.apache.pig.data.tuple; public class leftpad extends evalfunc<string> { @override public string exec(tuple arg) throws ioexception { seek { string input = (string)arg.get(0); homecoming stringutils.leftpad(input, 40, "0"); } catch(exception e) { throw new ioexception("caught exception while processing input row ", e); } } }

update:

1.download 4 jar files below link(apache-commons-lang.jar,piggybank.jar, pig-0.11.0.jar , hadoop-common-2.6.0-cdh5.4.5) http://www.java2s.com/code/jar/a/downloadapachecommonslangjar.htm http://www.java2s.com/code/jar/p/downloadpiggybankjar.htm http://www.java2s.com/code/jar/p/downloadpig0110jar.htm 2. set 3 jar files class path >> export classpath=/tmp/pig-0.11.1.jar:/tmp/piggybank.jar:/tmp/apache-commons-lang.jar 3. create directory name format >>mkdir format 4. compile leftpad.java , create sure 3 jars included in class path otherwise compilation issue come >>javac leftpad.java 5. move class file format folder >>mv leftpad.class format 6. create jar file name leftformat.jar >>jar -cf leftformat.jar format/ 7. jar file created, include pig script illustration command line: $ mkdir format $ javac leftpad.java $ mv leftpad.class format/ $ jar -cf leftformat.jar format/ $ ls leftpad.java format input.txt leftformat.jar script.pig

apache-pig

Comments

Popular posts from this blog

assembly - What is the addressing mode for ld, add, and rjmp instructions? -

vowpalwabbit - Interpreting Vowpal Wabbit results: Why are some lines appended by "h"? -

Is there a way to convert an HTML page styled with Bootstrap CSS into email-compatible html? -