A ÉCHOUÉ: NullPointerException null dans la REQUÊTE de la RUCHE

Qui suit est la requête de la RUCHE, je suis avec, je suis également à l'aide d'une fonction de Classement. Je suis en cours d'exécution du présent sur ma machine locale.

SELECT numeric_id, location, Rank(location), followers_count
FROM (
SELECT  numeric_id, location, followers_count
FROM twitter_data
DISTRIBUTE BY numeric_id, location
SORT BY numeric_id, location, followers_count desc
) a
WHERE Rank(location)<10;

Mon Rang de fonction se présente comme suit:

package org.apache.hadoop.hive.contrib.udaf.ex;

import org.apache.hadoop.hive.ql.exec.UDF;



public final class Rank extends UDF{
    private int  counter;
    private String last_key;
    public int evaluate(final String key){
      if ( !key.equalsIgnoreCase(this.last_key) ) {
         this.counter = 0;
         this.last_key = key;
      }
      return this.counter++;
    }
}

Je suis entrain de créer le Jar du fichier ci-dessus et ensuite de faire les étapes suivantes avant d'exécuter la requête de la ruche. J'ai essayé de le faire avec runnable jar et de la création avec un simple ainsi.

ADD JAR /home/adminpc/Downloads/Project_input/Rank.jar;
CREATE TEMPORARY FUNCTION Rank AS 'org.apache.hadoop.hive.contrib.udaf.ex.Rank';

C'est ce que j'obtiens après l'exécution de la Requête de la Ruche--

hive> SELECT numeric_id, location, Rank(location), followers_count
    > FROM (
    > SELECT  numeric_id, location, followers_count
    > FROM twitter_data
    > DISTRIBUTE BY numeric_id, location
    > SORT BY numeric_id, location, followers_count desc
    > ) a
    > WHERE Rank(location)<1;
FAILED: NullPointerException null
  • N'importe qui. Lonely planet vous aider!
  • Je suis confronté au même problème. Avez-vous trouvé la solution pour ce.. @patz
  • sry mec, devrait avoir mis à jour cette question, sa fait 2ans je me souviens à peine de la solution.
  • J'ai eu la solution. Je suis à l'aide de udaf, nous, et j'ai annulé seulement 3 méthodes. c'est à dire, i) init() ii) iterate() iii) terminate(). Maintenant j'ai mis à jour mon code pour remplacer les 5 méthodes qui est obligatoire. i) init() ii) iterate() iii) terminatePartial() iv) terminate() v) merge(). Avec cela, j'ai résolu mon problème.
InformationsquelleAutor patz | 2014-04-17