Comment puis-je filtrer les lignes selon que la valeur d'une colonne dans un Ensemble de Chaînes dans une Étincelle DataFrame

Est-il un moyen plus élégant de filtrage basé sur les valeurs dans un Ensemble de String?

def myFilter(actions: Set[String], myDF: DataFrame): DataFrame = {
  val containsAction = udf((action: String) => {
    actions.contains(action)
  })

  myDF.filter(containsAction('action))
}

En SQL, vous pouvez faire

select * from myTable where action in ('action1', 'action2', 'action3')
Avez-vous regardé myDF.action.inSet() ?
Votre syntaxe n'a pas de sens pour moi. Avez-vous travaillé avec Spark DataFrames avant?
Oui, j'ai, à l'aide de python. Par ailleurs, pourquoi n'utilisez-vous pas la version SQL, car il fonctionne pour vous?

OriginalL'auteur zzztimbo | 2015-07-14