DataFrame.summary()
, похоже, некорректно работает со столбцами даты.Например, следующий код
import pandas as pd
import pyspark.sql.functions as F
data = {"namecol": ["foo", "bar"],
"datecol": ["01-JAN-17", "02-MAY-19"],
}
df = pd.DataFrame(data)
# (create the spark object)
df = spark.createDataFrame(df)
print(df.summary("count").collect()[0].asDict())
дает
{'summary': 'count', 'namecol': '2', 'datecol': '2'}
Однако, если я произнесу datecol
с to_date()
, тогда summary("count")
не будет работать должным образом:
datecol = F.to_date(F.col("datecol"), "dd-MMM-yy")
df2 = df.withColumn("datecol",datecol)
print(df2.summary("count").collect()[0].asDict())
даст мне следующий вывод:
{'summary': 'count', 'namecol': '2'}
Это либо ошибка, либо я неправильно понимаю что-то фундаментальное в DataFrame.summary()
.В любом случае, похоже, что он не может найти счет для столбцов с типом даты.
Есть ли альтернатива использованию DataFrame.summary("count")
?У меня довольно много столбцов в фрейме данных, и я ищу быстрый способ получить количество не null
строк в каждом столбце.