J'ai chargé un dynamodb plein d'informations de twitter (format de json) dans la ruche. Le format du fichier JSON ressemble à ceci:Hive: Est-il possible d'utiliser regexp_extract sur un champ struct? (NullPointerException)
{"id":{"s":"894643473017561088"},"sentiment":{"s":"neutral"},"subjectivity":{"s":"0.0"},"username":{"s":"Jessi"},"geo":{"s":"None"},"location":{"s":"Valley of the sun☀️"},"polarity":{"s":"0.0"},"tweet":{"s":"b\"RT @bannerite: Donald Trump's lies have consequences. We're seeing them now | Charlotte Observer #DemForce""},"created_at":{"s":"Mon Aug 07 19:36:40 +0000 2017"},"screen_name":{"s":"JessiAtkins06"},"followers_count":{"s":"19"}}
J'ai créé la table ruche comme ceci:
create external table table1 (
> id struct<s:string>,
> sentiment struct<s:string>,
> subjectivity struct<s:string>,
> username struct<s:string>,
> geo struct<s:string>,
> location struct<s:string>,
> polarity struct<s:string>,
> tweet struct<s:string>,
> created_at struct<s:string>,
> screen_name struct<s:string>,
> followers_count struct<s:string>)
> ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
> STORED AS TEXTFILE;
Et puis chargé les données du fichier JSON en utilisant l'habituel « INPATH de données de charge .. ." formule.
J'ai besoin d'extraire hashtags du « tweet » le terrain, mais lorsque je tente de faire une expression régulière pour rechercher des hashtags, je reçois une erreur:
hive> select regexp_extract(lower(tweet), '/\B#\w*[a-zA-Z]+\w*/',0) as patterns
> from table1
> limit 10;
FAILED: NullPointerException null
Je me demande si cela est parce que du format struct des champs. J'aurais pu exporter le fichier dynamo en tant que csv, mais les tweets contiennent beaucoup de virgules. La même erreur se produit si le champ int est défini sur 0, 1 ou 2.
J'essaie de déterminer quelle valeur dans le champ est nulle et je ne suis pas sûr - j'ai essayé une commande similaire sur un table qui était composée de champs de type chaîne et cela a fonctionné. J'ai regardé le "Qu'est-ce qu'une NullPointerException, et comment puis-je le réparer?" fil mais n'a toujours aucune idée; Toute aide serait appréciée.
Pouvez-vous envoyer la trace de la pile qui a conduit à l'exception NullPointerException? Il est généralement dans un dossier Hivelogs séparé –
Je ne suis pas sûr si c'est une trace de pile, mais j'ai téléchargé hive.log à http://www.vaughn-s.net/hadoop/hive.log –
Je ne vois pas NullPointerException n'importe où dans ce journal ... –