У меня есть pyspark.sql.DataFrame с некоторыми строками, если я пытаюсь взять некоторые из них я могу видеть населена, как и ожидалось, например:Спарк функция sql.DataFrame фильтр не работает, как ожидалось
train_df.take(20)
возвращение мне:
[Row(entityId=u'7179b9467f825a5bbb748ea6226b12137e23a19f', event=u'preferences-tags', targetEntityId=u'angriff'),
Row(entityId=u'7179b9467f825a5bbb748ea6226b12137e23a19f', event=u'preferences-tags', targetEntityId=u'schiff'),
Row(entityId=u'7179b9467f825a5bbb748ea6226b12137e23a19f', event=u'preferences-communityId', targetEntityId=u', ... ]
И я хочу, чтобы фильтровать их по одному из полей, например, где event
= preferences-tags
, используя функцию фильтра, как показано ниже:
PRIMARY_EVENT_NAME = 'preferences-tags'
rating = train_df.filter("event = '%s'" % (PRIMARY_EVENT_NAME))
Но, кажется, оно не фильтровать их должным образом, как возвращение 0 Полученные результаты
rating.count()
# 0 is returned
Я использовал функцию фильтра с таким же синтаксисом и логикой в других частях моего кода, и он выполняет так же, как и ожидалось, что случилось Вот?
'filter' принимает функцию, так что я не понимаю, почему вы думаете, что строка будет делать что-нибудь –
train_df является pyspark.sql.DataFrame и фильтр принимает строку выражения SQL в качестве параметра – Mattia
Ах, Я вижу, что ты сейчас спрашиваешь. Если вы используете строки, вы попробовали 'LIKE' или' == 'вместо' = '? –