A "Don't know how to build JDBC URL for target databricks" error occurs in SAS/ACCESS® Interface to Spark


In SAS®9, the SAS/ACCESS Interface to Spark LIBNAME statement can fail while building the JDBC URL for the Databricks database. Execution of the LIBNAME statement might generate the following error message:

ERROR: Don't know how to build JDBC URL for target "databricks" with JDBC driver class "com.simba.databricks.jdbc.Driver"
ERROR: Error in the LIBNAME statement.

This issue is caused by a bug in the SAS/ACCESS Interface to Spark engine when you specify the Databricks catalog (as "ConnCatalog=") in the Properties LIBNAME option.  

Workaround

To work around this issue, specify the Databricks catalog name in the URL LIBNAME option. 

For example, instead of specifying the connection schema and catalog in the Properties option, use the URL option to specify the schema and catalog.

Connection Schema and Catalog Specification in the Properties Option:

libname dbricks spark platform=databricks
  driverClass='com.databricks.client.jdbc.Driver'
  classpath='/usr/local/SAS/AccessClients/9.4/DataDrivers/jdbc'
  user=token pwd="&MYPWD"
  server="&MYDBRICKS"  port=443
  httpPath="&MYHTTPPATH"
  properties="defaultStringColumnLength=255;useNativeQuery=1;TemporarilyUnavailableRetryTimeout=1800;
    ConnSchema=&MYSCHEMA;ConnCatalog=&MYCATALOG"
  schema="&MYSCHEMA"
  character_multiplier=1
  PRESERVE_TAB_NAMES=YES
  login_timeout=1800
  bulkload=no
;

URL Option Specification:

libname dbricks spark
  driver="com.databricks.client.jdbc.Driver"
  classpath='/usr/local/SAS/AccessClients/9.4/DataDrivers/jdbc'
  url="jdbc:databricks://&MYDBRICKS:443/&MYSCHEMA;transportMode=http;ssl=1;httpPath=&MYHTTPPATH;AuthMech=3;
    UID=&MYUID;PWD=&MYPWD;
    defaultStringColumnLength=255;useNativeQuery=1;TemporarilyUnavailableRetryTimeout=1800;
    ConnSchema=&MYSCHEMA;ConnCatalog=&MYCATALOG"
  character_multiplier=1
  PRESERVE_TAB_NAMES=YES
  bulkload=no
  login_timeout=1800
;