PySpark, как обобщить чтение из базы данных - PullRequest
1 голос
/ 26 апреля 2020

Ниже приведен мой код:

conn_url = "jdbc:oracle:thin:@//1xxx.xxx.xxxx.xx:1521/USER”

df = spark.read.format("jdbc").option("url",conn_url).option("drive","oracle.jdbc.driver.OracleDriver").option("dbtable”,”table_name”).option("user”,”user”).option("password”,”pwd”).load()

Я хотел написать обобщенную c функцию, с помощью которой я могу вызывать приведенный выше код для разных имен таблиц. В основном все параметры в spark.read.format будут одинаковыми, просто имя таблицы будет другим.

1 Ответ

1 голос
/ 26 апреля 2020

В вашем conn_url удалить имя базы данных USER

conn_url = "jdbc:oracle:thin:@//1xxx.xxx.xxxx.xx:1521”

Теперь в dbtable укажите schema_name.table_name то есть USER.<tb_name> Теперь Spark будет читать таблицу из conn_url

.option("dbtable”,”table_name”)

(Или)

Использование conf files и прочитайте conn_url and table_names из файлов conf, чтобы нам не нужно было менять код.

...