Quelle est la différence entre sélectionner avec une clause where et filtrer dans Spark?
Existe-t-il des cas d'utilisation dans lesquels l'un est plus approprié que l'autre?
Quand dois-je utiliser
DataFrame newdf = df.select(df.col("*")).where(df.col("somecol").leq(10))
et quand est
DataFrame newdf = df.select(df.col("*")).filter("somecol <= 10")
plus approprié?
Selon documentation d'étincelle "where()
est un alias pour filter()
"
filter(condition)
Filtre les lignes en utilisant la condition donnée. where()
est un alias pour filter()
.
Paramètres : condition - a Column
de types.BooleanType
ou une chaîne d’expression SQL.
>>> df.filter(df.age > 3).collect()
[Row(age=5, name=u'Bob')]
>>> df.where(df.age == 2).collect()
[Row(age=2, name=u'Alice')]
>>> df.filter("age > 3").collect()
[Row(age=5, name=u'Bob')]
>>> df.where("age = 2").collect()
[Row(age=2, name=u'Alice')]