0
私は、aggとcountを使用してDataFrameでいくつかのカウントを取得しようとしています。PySpark Dataframe Aggregationでnullを含むCount
from pyspark.sql import Row ,functions as F
row = Row("Cat","Date")
df = (sc.parallelize
([
row("A",'2017-03-03'),
row('A',None),
row('B','2017-03-04'),
row('B','Garbage'),
row('A','2016-03-04')
]).toDF())
df = df.withColumn("Casted", df['Date'].cast('date'))
df.show()
(
df.groupby(df['Cat'])
.agg
(
#F.count(col('Date').isNull() | col('Date').isNotNull()).alias('Date_Count'),
F.count('Date').alias('Date_Count'),
F.count('Casted').alias('Valid_Date_Count')
)
.show()
)
F.countは()私の唯一の非nullの数を与えている機能。 'OR'条件を使用する以外に、NULLを含むカウントを取得する方法はありますか?
無効なカウントが機能していないようです。 &の状態が期待どおりに動作していないように見えます。
(
df
.groupby(df['Cat'])
.agg
(
F.count('*').alias('count'),
F.count('Date').alias('Date_Count'),
F.count('Casted').alias('Valid_Date_Count'),
F.count(col('Date').isNotNull() & col('Casted').isNull()).alias('invalid')
)
.show()
)
int
とsum
としてブール式をキャストあなたは私を追加し、最終的なコードブロックを見ることができます。無効なエイリアスが期待した結果を得ていません。 –@Tronald Dumpあなたの意図する出力は何ですか? – MaFF
投稿の最後に目的の出力が追加されます。 –