默认的操作
- 代码
val df = spark.read .format("jdbc") .option("url", "jdbc:postgresql://localhost:5432/testdb") .option("user", "username") .option("password", "password") .option("driver", "org.postgresql.Driver") .option("dbtable", "test_table") .load()
- 讲解
上面这种默认情况使用jdbc driver读数据库(如pg库),仅仅会使用一个task读数据,也就是只有一个分区。要证明这一点可以通过两种方式:
- 查看web ui
你会看到只有一个task。 - 通过getNumPartitions方法
int numPartitions = ds.rdd().getNumPartitions();