添加 JAR 以在 spark 中使用 sql UDF
Adding JARs to use sql UDF in spark
我想使用在我的库中定义的自定义 UDF。我为此使用了以下代码:
%spark2
import org.apache.spark.sql.functions.year
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
sqlContext.sql(s"ADD JAR /usr/hdp/current/spark-client/lib/myLib.jar")
val df = sqlContext.sql("select parse_datetime(start_timestamp, 'CET', 'yyyyMMddHHmmssSSS') AS TIMESTAMP) from temp)
上面的代码抱怨缺少函数“parse_datetime
”,所以显然,ADD JAR 语句没有添加 myLib。是否存在语法问题或我遗漏了什么。我在 Zeppelin 运行 这个
我也复制了 $SPARK_HOME/lib
文件夹中的 myLib.jar 但没有用。
我找到了解决办法。我已经在 spark intertreper 的依赖项部分给出了 myLib.jar 的确切路径。现在可以了。
我想使用在我的库中定义的自定义 UDF。我为此使用了以下代码:
%spark2
import org.apache.spark.sql.functions.year
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
sqlContext.sql(s"ADD JAR /usr/hdp/current/spark-client/lib/myLib.jar")
val df = sqlContext.sql("select parse_datetime(start_timestamp, 'CET', 'yyyyMMddHHmmssSSS') AS TIMESTAMP) from temp)
上面的代码抱怨缺少函数“parse_datetime
”,所以显然,ADD JAR 语句没有添加 myLib。是否存在语法问题或我遗漏了什么。我在 Zeppelin 运行 这个
我也复制了 $SPARK_HOME/lib
文件夹中的 myLib.jar 但没有用。
我找到了解决办法。我已经在 spark intertreper 的依赖项部分给出了 myLib.jar 的确切路径。现在可以了。