Как увеличить время выполнения запроса Presto в Spark

В настоящее время я подключаюсь к Presto с помощью Spark. Время ожидания наших запросов истекает после60m, чтобы увеличить время выполнения запроса, я установил query.max-execution-time параметры в getDBProperties() как показано ниже

private def constructPrestoDataFrame(sparkSession : SparkSession, jobConfig : Config, query : String) : DataFrame = {
    sparkSession
      .read
      .jdbc(getPrestoConnectionUrl(jobConfig), query, getDBProperties(jobConfig))
  }

  private def getDBProperties(jobConfig : Config) : Properties = {
    val dbProperties = new Properties
    dbProperties.put("user", jobConfig.getString("presto.user"))
    dbProperties.put("password", jobConfig.getString("presto.password"))
    dbProperties.put("Driver", jobConfig.getString("presto.driver.name"))
    dbProperties.put("query.max-execution-time", "2d")

    dbProperties
  }

  private def getPrestoConnectionUrl(jobConfig : Config) : String = {
    s"jdbc:presto://${jobConfig.getString("presto.host")}:8443/${jobConfig.getString("presto.catalogue.name")}?SSL=true&SSLTrustStorePath=${jobConfig.getString("sslTrustStorePath")}"+
      "&SSLTrustStorePassword="+URLEncoder.encode(jobConfig.getString("sslTrustStorePassword"))
  }

Когда я запускаю задание, я получаю исключение и говорю exception caught: Cause = null Message = Unrecognized connection property 'query.max-execution-time'

Мы используем apache-spark-2.3.x, presto-jdbc-driver-300.

1 ответ

Добавление MAX_EXECUTION_TIME к sessionVariables в URL-адресе выполняет эту работу за меня:

      jdbc:mysql://{host}:{port}/{database}?sessionVariables=MAX_EXECUTION_TIME=123456666

Запрос на проверку:

      SELECT @@max_execution_time

Ожидаемый результат:

      +--------------------+ 
|@@max_execution_time| 
+--------------------+ 
| 123456666          | 
+--------------------+
Другие вопросы по тегам