2017-07-25 8 views
-1

Je cours cette requête de ruche afin d'obtenir un compte sage compte sur une données non structurées.Erreur lors de la mise en œuvre de compte sage compte sur les données non structurées dans la ruche

select a, count(*) from (select(EXPLODE(SPLIT(regexp_replace(upper(word,'[[email protected]#$%&*]',''))) AND EXPLODE(SPLIT(regexp_replace(UPPER(word,'[^A-Za-z0-9 ]','')))) as A from file)q group by a; 

MAIS Im obtenir ci-dessous comme une erreur. Pas capable de comprendre la solution.

ÉCHEC: SemanticException [Erreur 10014]: Ligne 1:46 mauvais arguments '' '': Pas de méthode de correspondance pour org.apache.hadoop.hive.ql.udf.UDFRegExpReplace classe avec (string). Possible choix: FUNC (string, string, string)

+0

SQL 1 les doublures sont une mauvaise idée. Commencez par formater correctement votre requête. –

Répondre

0

regexp_replace est pour le remplacer ont 3 arguments

(org.apache.hadoop.io.Text s, org.apache.hadoop.io.Text regex, org.apache.hadoop.io.Text replacement)

vous devriez plutôt utiliser regexp_extract

evaluate(String s, String regex) 
+0

Mais j'utilise trois arguments: EXPLODE (SPLIT (regexp_replace (UPPER (mot, '[^ A-Za-z0-9]', '')))) -> (chaîne à traiter (mot), Chaîne à remplacer ('[^ A-Za-z0-9]'), Remplacer ('') –

+0

3 arguments que vous donnez pour UPPER, UPPER (mot, '[^ A-Za-z0-9]', '') – sreejith

+0

Ok, même si je ne donne pas Upper et donne directement regexp_replace, je reçois la même erreur.Essayé, dint résoudre les problèmes. :( –