Spark JDBC阅读最终仅在一个分区中



i具有以下代码段,用于从postgresql表中读取所有可用数据的数据,即 select * from table_name

 jdbcDF = spark.read 
    .format("jdbc") 
    .option("url", self.var_dict['jdbc_url']) 
    .option("dbtable", "({0}) as subq".format(query)) 
    .option("user", self.var_dict['db_user']) 
    .option("password", self.var_dict['db_password']) 
    .option("driver", self.var_dict['db_driver']) 
    .option("numPartitions", 10) 
    .option("fetchsize", 10000) 
    .load()

其中var_dict是一个包含我的变量的字典,喜欢火花上下文,数据库信用等。

即使当我拉出数百万行时,从下面的代码返回1总是:

partitions_num = jdbcDF.rdd.getNumPartitions()

有人可以建议我在这里做错了什么吗?理想情况下,我希望我使用最大的可用资源,而不是将数据仅将数据拉到我的主节点。

partitionColumn,下弯,上行无法使用,因为我的分区列是时间戳,而不是数字。

从Spark 2.4.0,日期和时间戳列也支持用于分区,https://issues.apache.org/jira/browse/spark-22814

最新更新