1,sparkSQK -jdbc

官方文档 https://spark.apache.org/docs/3.2.1/sql-data-sources-jdbc.html

  • 支持的数据库
    DB2
    MariaDB
    MS Sql
    Oracle
    PostgreSQL

  • 访问数据库可通过
  • spark.read().jdbc(driver,tableName,'分区规则(字符串数组)',properties)连接
  • spark.format("jdbc")
    .option('url','连接地址')
    .option('driver','驱动名称')
    .option('dbtable','表名称')
    .option('driver','xxx')
    ...

  • 可配置参数
  • partitionColumn, lowerBound, upperBound :分区字段,下界值,上界值,该三个值必须同时配置
  • numPartitions :分区数量,spark可以根据上界、下届以及数量自己平均分配分区
  • fetchsize :读一次读多少条,适合大数据量配置
  • batchSize : 写 一次写多少数据,适合大数据量配置
  • isolationLevel 数据库隔离级别

  • 代码实例
Dataset<Row> ds= spark.read()
                .option("partitionColumn", "出生年月日").option("lowerBound", "1921-01-01").option("upperBound", "2032-01-01").option("numPartitions", 20)
                .option("fetchsize", "1000")
                .jdbc(dbUrl, "tableName", properties);