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