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
Post a Comment