我如何编写 UDF 以将第二列转换为大写

Posted

技术标签:

【中文标题】我如何编写 UDF 以将第二列转换为大写【英文标题】:how can i write UDF to convert second column in upper case 【发布时间】:2015-09-10 10:16:36 【问题描述】:
   package com.hadoopexpert;
   import java.io.IOException;
   import org.apache.pig.EvalFunc;
   import org.apache.pig.data.Tuple;

   public class upper extends EvalFunc<String>
  
   public String exec(Tuple input) throws IOException 
   if (input == null || input.size() == 0)
       return null;
    try
       String str = (String)input.get(0);
      return str.toUpperCase();      catch(Exception e)
      throw new IOException("Caught exception processing input row ", e);


         

我想将下面 i/p 文件的第二列转换为大写,这是正确的代码吗? 输入文件- 101,艾哈迈德 102,克兰蒂 103,萨格尔 第104章

【问题讨论】:

【参考方案1】:

不,您的索引是错误的。 (String)input.get(0) 获取第一列。 (String)input.get(1) 将为您提供第二列。

顺便说一句,您可以使用 Pig 提供的 UDF 调用 UPPER 将字符串大写。

【讨论】:

以上是关于我如何编写 UDF 以将第二列转换为大写的主要内容,如果未能解决你的问题,请参考以下文章

如何将第二列中的文本居中到页面 - 引导

编写程序输入一个小写字母,如何将其转换为大写字母输出

如何创建接口以将 c 字符数组转换为 fortran

将第二列向右对齐

Logback - 如何编写自定义异常转换器以将堆栈跟踪折叠成一行

如何将两列csv转换为第二列的向量?