2017-10-18 17 views
2

J'ai une table SQL sur table dans laquelle une des colonnes, arr, est un tableau d'entiers. Comment puis-je filtrer la table sur des lignes dans lesquelles les tableaux sous arr contiennent une valeur entière? (Par exemple, si je recherche 1, alors les tableaux [1,2,3] et [1,4] devraient être inclus, mais [3,4] ne devraient pas l'être). J'utilise Spark sur Databricks et je n'ai pas accès aux fonctions ANY ou MEMBER OF.Comment vérifier si une colonne (de type tableau) contient une valeur en SQL (sans ANY)?

Répondre

1

IIUC vous pouvez utiliser la méthode array_contains:

sqlContext.sql("select * from table where array_contains(arr, 1)") 
+0

Wow, c'est parfait. Pour une raison quelconque, je ne pouvais pas trouver cela ailleurs. Je vous remercie. – user3661646

+0

@ user3661646 Envisagez d'accepter la réponse car elle vous a aidé à résoudre le problème, voir [ici] (https://stackoverflow.com/help/someone-answers). – Shaido