java/src/main/java/com/google/cloud/dataproc/templates/gcs/GCSToSpanner.java [73:106]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  public void write(Dataset<Row> dataset) {
    String spannerUrl =
        String.format(
            "jdbc:cloudspanner:/projects/%s/instances/%s/databases/%s?lenient=true",
            config.getProjectId(), config.getInstance(), config.getDatabase());

    LOGGER.info("Spanner JDBC Dialect is {}", config.getSpannerJdbcDialect());
    switch (config.getSpannerJdbcDialect().toLowerCase()) {
      case SPANNER_GOOGLESQL_JDBC_DIALECT:
        JdbcDialects.registerDialect(new SpannerJdbcDialect());
        break;

      case SPANNER_POSTGRESQL_JDBC_DIALECT:
        JdbcDialects.registerDialect(new SpannerPostgresJDBCDialect());
        break;
    }

    LOGGER.info("Start writing to spanner");
    dataset
        .write()
        .format("jdbc")
        .option(JDBCOptions.JDBC_URL(), spannerUrl)
        .option(JDBCOptions.JDBC_TABLE_NAME(), config.getTable())
        .option(
            JDBCOptions.JDBC_CREATE_TABLE_OPTIONS(),
            String.format("PRIMARY KEY (%s)", config.getPrimaryKey()))
        .option(
            JDBCOptions.JDBC_TXN_ISOLATION_LEVEL(),
            "NONE") // Needed because transaction have a 20,000 mutation limit per commit.
        .option(
            JDBCOptions.JDBC_BATCH_INSERT_SIZE(), config.getBatchInsertSize()) // default is 1000
        .option(JDBCOptions.JDBC_DRIVER_CLASS(), SPANNER_JDBC_DRIVER)
        .mode(config.getSaveMode())
        .save();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



java/src/main/java/com/google/cloud/dataproc/templates/jdbc/JDBCToSpanner.java [76:108]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  public void write(Dataset<Row> dataset) {
    String spannerUrl =
        String.format(
            "jdbc:cloudspanner:/projects/%s/instances/%s/databases/%s?lenient=true",
            config.getProjectId(), config.getInstance(), config.getDatabase());
    LOGGER.info("Spanner JDBC Dialect is {}", config.getSpannerJdbcDialect());
    switch (config.getSpannerJdbcDialect().toLowerCase()) {
      case SPANNER_GOOGLESQL_JDBC_DIALECT:
        JdbcDialects.registerDialect(new SpannerJdbcDialect());
        break;

      case SPANNER_POSTGRESQL_JDBC_DIALECT:
        JdbcDialects.registerDialect(new SpannerPostgresJDBCDialect());
        break;
    }

    LOGGER.info("Start writing to spanner");
    dataset
        .write()
        .format("jdbc")
        .option(JDBCOptions.JDBC_URL(), spannerUrl)
        .option(JDBCOptions.JDBC_TABLE_NAME(), config.getTable())
        .option(
            JDBCOptions.JDBC_CREATE_TABLE_OPTIONS(),
            String.format("PRIMARY KEY (%s)", config.getPrimaryKey()))
        .option(
            JDBCOptions.JDBC_TXN_ISOLATION_LEVEL(),
            "NONE") // Needed because transaction have a 20,000 mutation limit per commit.
        .option(
            JDBCOptions.JDBC_BATCH_INSERT_SIZE(), config.getBatchInsertSize()) // default is 1000
        .option(JDBCOptions.JDBC_DRIVER_CLASS(), SPANNER_JDBC_DRIVER)
        .mode(config.getSaveMode())
        .save();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



