hive
Funkcje zdefiniowane przez użytkownika Hive (UDF)
Szukaj…
Tworzenie gałęzi UDF
Aby utworzyć UDF, musimy rozszerzyć klasę UDF ( org.apache.hadoop.hive.ql.exec.UDF
) i wdrożyć metodę oceny.
Gdy UDF jest przestrzegane i JAR jest kompilowany, musimy dodać jar do kontekstu gałęzi, aby utworzyć funkcję tymczasową / stałą.
import org.apache.hadoop.hive.ql.exec.UDF;
class UDFExample extends UDF {
public String evaluate(String input) {
return new String("Hello " + input);
}
}
hive> ADD JAR <JAR NAME>.jar;
hive> CREATE TEMPORARY FUNCTION helloworld as 'package.name.UDFExample';
hive> select helloworld(name) from test;
Hive UDF, aby przyciąć podany ciąg.
package MyHiveUDFs;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class Strip extends UDF {
private Text result = new Text();
public Text evaluate(Text str) {
if(str == null) {
return null;
}
result.set(StringUtils.strip(str.toString()));
return result;
}
}
wyeksportuj powyższe do pliku jar
Przejdź do interfejsu Hive CLI i dodaj plik JAR UDF
hive> ADD jar /home/cloudera/Hive/hive_udf_trim.jar;
Sprawdź, czy plik JAR znajduje się w ścieżce klas interfejsu CLI Hive
hive> list jars;
/home/cloudera/Hive/hive_udf_trim.jar
Utwórz funkcję tymczasową
hive> CREATE TEMPORARY FUNCTION STRIP AS 'MyHiveUDFs.Strip';
Wyjście UDF
hive> select strip(' hiveUDF ') from dummy;
OK
hiveUDF
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow