我有一个sparkDataframe(spark2.3),它存储一个没有记录的sql。当我尝试计算分区数时,它没有显示任何结果,并且尝试了各种函数,如df.rdd.getnumpartitions/df.rdd.getnumpartitions()/df.rdd.length/df.rdd.partitions.size。
如何从一个sparkDataframe中获得零条或数百万条记录的分区数?
代码:
empsql = 'Select * From Employee' ## In this sql it has zero records
df = spark.sql(empsql) ##Spark is configured
df.rdd.getNumPartitions
# Using df.rdd.partitions.size got error as: AttributeError: 'RDD' object has no attribute 'partitions'
2条答案
按热度按时间csbfibhn1#
具有零记录的Dataframe的分区数取决于sparksession对象的示例化方式。
如果我用下面给出的config构建sparksession对象,那么即使一个Dataframe没有记录,我也会得到4个分区。
scala代码片段来证明这一点-
bqf10yzr2#
试一试,假设Pypark:
通过应等同于空查询的空df进行模拟:
退货:
此外:
产量: