Próbuję filtrować dataframe PySpark który ma None
jako wartość rzędu:Filtr kolumna Pyspark dataframe z Brak wartości
df.select('dt_mvmt').distinct().collect()
[Row(dt_mvmt=u'2016-03-27'),
Row(dt_mvmt=u'2016-03-28'),
Row(dt_mvmt=u'2016-03-29'),
Row(dt_mvmt=None),
Row(dt_mvmt=u'2016-03-30'),
Row(dt_mvmt=u'2016-03-31')]
i mogę filtrować poprawnie z wartości ciągu:
df[df.dt_mvmt == '2016-03-31']
# some results here
ale to się nie powiedzie:
df[df.dt_mvmt == None].count()
0
df[df.dt_mvmt != None].count()
0
Ale są zdecydowanie wartości w każdej kategorii. Co się dzieje?
Zgodnie [PEP 8] (https : //www.python.org/dev/peps/pep-0008/#programming-recommendations) powinieneś używać 'is' i' is not' dla porównań do singletonów takich jak None. – Natecat
Tak, ale nie ma "is" lub "nie jest" do filtrowania ramek danych PySpark: 'W [222]: df [df.dt_mvmt to Brak] .show() TypeError: Obiekt" Column "nie jest możliwy do wywołania' – Ivan