【发布时间】:2019-07-25 11:29:41
【问题描述】:
我正在研究 databricks cloud 5.4 ML,并为我的分类问题创建了一个训练数据集。在计算记录时,我发现计数不一致,我无法解释。
此外,我检查了我的 Spark DataFrame 不包含 null 或 nan 值。我也在 Pandas 中做了同样的检查。
#train is spark dataframe
train.select([F.count(F.when(F.isnan(c) | F.col(c).isNull(),c)).alias(c)
for c in train.columns]).show() #all counts are 0
train.filter((F.col('colname') == "") | F.col('colname').isNull()
| F.isnan(F.col('colname'))).count() #count is 0
train.toPandas().isnull().sum().sum() #count is 0
下面是不同的计数值:
train.count() #count is 6011
train.toPandas().shape[0] #count is 6022
-- Spark SQL
-- count is 6012
SELECT COUNT(*)
FROM train
-- Spark SQL
-- count is 5985
SELECT COUNT(colname)
FROM train
我希望 Pyspark、Spark SQL 和 toPandas().shape 生成的记录数相同。你怎么认为?解决方案?
非常感谢。
【问题讨论】:
标签: pandas apache-spark pyspark apache-spark-sql databricks