зарегистрировать улей udf в scala - java.net.MalformedURLException: неизвестный протокол: s3 - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь зарегистрировать udf в scala spark следующим образом: регистрация следующего udf работает в улье create temporary function udf_parallax as 'com.abc.edw.hww.etl.udf.parallax.ParallaxHiveHash' USING JAR 's3://bx-analytics-softwares/gdpr_hive_udfs/gdpr-hive-udfs-hadoop.jar'

val sparkSess = SparkSession.builder()
  .appName("Opens")
  .enableHiveSupport()
  .config("set hive.exec.dynamic.partition.mode", "nonstrict").getOrCreate()
sparkSess.sql("""create temporary function udf_parallax as 'com.abc.edw.hww.etl.udf.parallax.ParallaxHiveHash' USING JAR 's3://bx-analytics-softwares/gdpr_hive_udfs/gdpr-hive-udfs-hadoop.jar'""");

Я получаю сообщение об ошибке: Exception in thread "main" java.net.MalformedURLException: unknown protocol: s3

Будетхотел бы знать, если мне нужно установить что-то в конфигурации или что-то еще, я только начал учиться.

Любая помощь с этим приветствуется.

1 Ответ

0 голосов
/ 29 ноября 2018

Почему бы не добавить этот gdpr-hive-udfs-hadoop.jar в качестве внешнего jar-файла в ваш проект, а затем сделать это, чтобы зарегистрировать udf:

val sqlContext = sparkSess.sqlContext
val udf_parallax = sqlContext.udf .register("udf_parallax", com.abc.edw.hww.etl.udf.parallax.ParallaxHiveHash _)

Обновление:

1. Если ваш куст работает на удаленном сервере:

  val sparkSession= SparkSession.builder()
                        .appName("Opens")
                        .config("hive.metastore.uris", "thrift://METASTORE:9083")
                        .config("set hive.exec.dynamic.partition.mode", "nonstrict")
                        .enableHiveSupport()
                        .getOrCreate()

sparkSession.sql("""create temporary function udf_parallax as 'com.abc.edw.hww.etl.udf.parallax.ParallaxHiveHash' USING JAR 's3://bx-analytics-softwares/gdpr_hive_udfs/gdpr-hive-udfs-hadoop.jar'""");

2. Если куст не запущен на удаленном сервере:

Скопируйте hive-site.xml из каталога / hive / conf / в каталог / spark / conf / и создайте SparkSession , как вы упомянули в вопросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...