Передача значений из одной записной книжки в другую - блоки данных - PullRequest
1 голос
/ 07 ноября 2019

Я подключаюсь к серверу Azure SQL из блоков данных, и для этого я использую соединитель jdbc

val jdbcUsername = "user1"
val jdbcPassword = "pwd1"
val jdbcHostname = "XXXXsqldevussc.database.windows.net" 
val jdbcPort = 1111
val jdbcDatabase ="XXXXacttrackdev"

Я создаю URL-адрес jdbc следующим образом

import java.util.Properties

val jdbc_url = s"jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=60;"
val connectionProperties = new Properties()
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")  
val cP = connectionProperties

val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
connectionProperties.setProperty("Driver", driverClass)

Это все взаписная книжка в общей папке, и теперь я хочу передать эти значения в записную книжку в папке проекта. Используя dbutils.notebook.exit, я могу просто передать одно значение (jdbc_url), но мне нужно также передать connectionProperties в другой блокнот. Может ли кто-нибудь помочь мне в этом. Я пытаюсь передать оба значения в 2 отдельных файла dbutils.notebook.exit, но получаю сообщение об ошибке

dbutils.notebook.exit(jdbc_url) // works well
dbutils.notebook.exit(cP) //throws an error command-2330564045697042:1: error: type mismatch;
                          // found   : java.util.Properties 
                          // required: String
                          // dbutils.notebook.exit(cP)

Как передать оба значения, используя dbutils.notebook.exit. Спасибо за помощь

Спасибо!

1 Ответ

0 голосов
/ 08 ноября 2019

Вы пытаетесь вернуть java.util.Properties объект, используя dbutils.notebook.exit. Однако dbutils.notebook.exit поддерживает только строку.

Так что вам может потребоваться преобразовать объект Properties в String. Что-то вроде:

    public static String getPropertyAsString(Properties prop) {    
      StringWriter writer = new StringWriter();
      prop.list(new PrintWriter(writer));
      return writer.getBuffer().toString();
    }

    dbutils.notebook.exit(getPropertyAsString(cP))   

Вы можете прочитать String в свойства объекта в другой записной книжке.

...