1

UDF をフローとして記述します。

  package com.test;
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.io.Text;

    public class Lower extends UDF {
        public Text evaluate(final Text s) {
            if (s == null) {
                return null;
            }
            return new Text(s.toString().toLowerCase());
        }
    }

次に、このテスト プロジェクトの jar(udftest.jar) を eclipse でエクスポートします。その後udftest.jar、ハイブに jar を追加します。

hive command: add jar udftest.jar;   
hive command: create temporary function my_lower as 'com.test.Lower';
hive command: Executing command:  create temporary function my_lower as 'com.test.Lower'

実行に失敗しました!

Failed: Error occurred during execution.
Detail message: FAILED: Execution Error, return code [-101] (unknow error) from org.apache.hadoop.hive.ql.exec.FunctionTask

どうしてか分かりません!私はインターネットを検索しますが、この問題に対処しません!

4

1 に答える 1

1

一時関数を作成できない理由がわかりました (何日も悩まされていました!): 私が使用した Java バージョンは 1.7 ですが、ハイブは 1.6 しかサポートしていないためです!!!

于 2014-12-08T12:01:28.110 に答える