как загрузить драйвер RDBMS для h2o в ноутбук Jupyter?

Я хотел бы создать автономную записную книжку Jupyter, которая использует h2o для импорта и моделирования данных, находящихся в реляционной базе данных. Документы показывают пример, где h2o запускается с драйвером JDBC в пути к классам, например.

java -cp <path_to_h2o_jar>:<path_to_jdbc_driver_jar> water.H2OApp

Я бы предпочел запускать h2o из записной книжки, которая является автономным воспроизводимым артефактом, а не выполнять специальные действия по подготовке среды перед запуском записной книжки. Если я запускаю следующий фрагмент:

import h2o
h2o.init()

connection_url = "jdbc:mysql://mysql.woolford.io/mydb"
select_query = "SELECT description, price FROM mytable"
username = "myuser"
password = "b@dp@ss"
mytable_data = h2o.import_sql_select(connection_url, select_query, username, password)

... метод import_sql_select не работает, потому что драйвер не загружен:

Server error java.lang.RuntimeException:
  Error: SQLException: No suitable driver found for jdbc:mysql://mysql.woolford.io/mydb

Есть ли способ загрузить драйвер при вызове h2o.init()? Или лучшая практика для этого?


person Alex Woolford    schedule 21.02.2019    source источник


Ответы (1)


h2o.init() принимает параметр с именем extra_classpath. Вы можете использовать этот параметр, чтобы указать путь к драйверу JDBC, и H2O запустится с драйвером.

Эта опция предназначена именно для того, чтобы не запускать H2O вне интерфейса ноутбука.

Пример:

import h2o
h2o.init(extra_classpath=["/Users/michal/Downloads/apache-hive-2.2.0-bin/jdbc/hive-jdbc-2.2.0-standalone.jar"])
person Michal Kurka    schedule 21.02.2019
comment
Спасибо, @Михал. Это идеально. Я должен был понять это сам через help(h2o.init). Дух. - person Alex Woolford; 21.02.2019