Class JdbcDialects

Object
org.apache.spark.sql.jdbc.JdbcDialects

public class JdbcDialects extends Object
:: DeveloperApi :: Registry of dialects that apply to every new jdbc org.apache.spark.sql.DataFrame.

If multiple matching dialects are registered then all matching ones will be tried in reverse order. A user-added dialect will thus be applied first, overwriting the defaults.

Note:
All new dialects are applied to new jdbc DataFrames only. Make sure to register your dialects first.
  • Constructor Details

    • JdbcDialects

      public JdbcDialects()
  • Method Details

    • registerDialectForUrlPrefix

      public static void registerDialectForUrlPrefix(String urlPrefix, JdbcDialect dialect)
      Register an existing dialect for an additional JDBC URL prefix. The registration affects dialect lookup only; Spark still passes the original URL to the JDBC driver. Registering the same prefix again replaces its previous dialect. These registrations are used only when no registered dialect handles the URL through JdbcDialect.canHandle(java.lang.String).

      The prefix must start with jdbc: and end with :. Matching is case-insensitive. For example, a MySQL-compatible wrapper can reuse the built-in MySQL dialect:

      
       JdbcDialects.registerDialectForUrlPrefix(
         "jdbc:aws-wrapper:mysql:",
         JdbcDialects.getBuiltInDialect("mysql"))
       

      Parameters:
      urlPrefix - The additional JDBC URL prefix.
      dialect - The existing dialect to use for URLs with the prefix.
    • unregisterDialectForUrlPrefix

      public static void unregisterDialectForUrlPrefix(String urlPrefix)
      Unregister the dialect associated with an additional JDBC URL prefix. Does nothing if the prefix is not registered.

      Parameters:
      urlPrefix - The additional JDBC URL prefix.
    • registerDialect

      public static void registerDialect(JdbcDialect dialect)
      Register a dialect for use on all new matching jdbc org.apache.spark.sql.DataFrame. Reading an existing dialect will cause a move-to-front.

      Parameters:
      dialect - The new dialect.
    • unregisterDialect

      public static void unregisterDialect(JdbcDialect dialect)
      Unregister a dialect. Does nothing if the dialect is not registered.

      Parameters:
      dialect - The jdbc dialect.
    • getBuiltInDialect

      public static JdbcDialect getBuiltInDialect(String name)
      Return a built-in JDBC dialect by name. The lookup is case-insensitive. Supported names are mysql, postgresql, db2, sqlserver, derby, oracle, teradata, h2, snowflake, and databricks.

      Parameters:
      name - The name of the built-in JDBC dialect.
      Returns:
      (undocumented)
    • get

      public static JdbcDialect get(String url)
      Fetch the JdbcDialect class corresponding to a given database url.
      Parameters:
      url - (undocumented)
      Returns:
      (undocumented)