web-dev-qa-db-fra.com

Spark Filtre SQL champs multiples

Quelle est la syntaxe correcte pour filtrer sur plusieurs colonnes dans l'API Scala? Si je veux faire quelque chose comme ceci:

dataFrame.filter($"col01" === "something" && $"col02" === "something else")

ou

dataFrame.filter($"col01" === "something" || $"col02" === "something else") 

MODIFIER:

Voici à quoi ressemble mon code d'origine. Tout vient sous forme de chaîne.

df.select($"userID" as "user", $"itemID" as "item", $"quantity" cast("int"), $"price" cast("float"), $"discount" cast ("float"), sqlf.substring($"datetime", 0, 10) as "date", $"group")
  .filter($"item" !== "" && $"group" !== "-1")
15
gstvolvr

Je pense que je vois quel est le problème. Pour une raison quelconque, spark ne permet pas deux! = Dans le même filtre. Besoin de voir comment filtre est défini dans Spark code source.

Maintenant, pour que votre code fonctionne, vous pouvez l'utiliser pour effectuer le filtre

df.filter(col("item").notEqual("") && col("group").notEqual("-1"))

ou utilisez deux filtres dans la même déclaration

df.filter($"item" !== "").filter($"group" !== "-1").select(....)

Ce lien ici peut aider avec différentes méthodes spark.

23
dheee