J'essaie de filtrer une base de données dans pyspark en utilisant une liste. Je veux filtrer en fonction de la liste ou inclure uniquement les enregistrements ayant une valeur dans la liste. Mon code ci-dessous ne fonctionne pas:pyspark filtre de données ou inclure basé sur la liste
# define a dataframe
rdd = sc.parallelize([(0,1), (0,1), (0,2), (1,2), (1,10), (1,20), (3,18), (3,18), (3,18)])
df = sqlContext.createDataFrame(rdd, ["id", "score"])
# define a list of scores
l = [10,18,20]
# filter out records by scores by list l
records = df.filter(df.score in l)
# expected: (0,1), (0,1), (0,2), (1,2)
# include only records with these scores in list l
records = df.where(df.score in l)
# expected: (1,10), (1,20), (3,18), (3,18), (3,18)
donne l'erreur suivante: ValueError: Impossible de convertir la colonne en bool: s'il vous plaît utiliser « & » pour « et », « | » pour 'or', '~' pour 'not' lors de la construction d'expressions booléennes DataFrame.