2
votes

INPATH DES DONNÉES DE CHARGE DE LA RUCHE

J'ai essayé de créer une table dans Hive en utilisant la commande suivante:

LOAD DATA INPATH '/user/root/stockdata/APPL.csv' OVERWRITE INTO TABLE apple;

Ensuite, j'ai essayé de charger des données en utilisant la commande:

CREATE TABLE apple (dates STRING, open INT, high INT, low INT, close INT, adj_close DECIMAL, vol INT) row format delimited fields terminated by ',' lines terminated by '\n' tblproperties ("skip.header.line.count"="1");**

Le fichier APPL.csv est stocké dans HDFS

L'exécution de ce qui précède a entraîné l'erreur suivante:

Erreur: Erreur lors de la compilation de l'instruction: FAILED: SemanticException Impossible de charger les données dans la table de destination. Erreur: le fichier que vous êtes la tentative de chargement ne correspond pas au format de fichier de la destination table. (état = 42000, code = 40000)

Quelqu'un peut-il aider à résoudre ce problème?


0 commentaires

3 Réponses :


1
votes

Placez le fichier directement dans l'emplacement de la table.

hdfs dfs -copyFromLocal /user/root/stockdata/APPL.csv' /user/<username>/apple 

Remplacez l'emplacement de destination par l'emplacement de votre table. Vous pouvez le vérifier en utilisant DESCRIBE FORMATTED tablename .


0 commentaires

1
votes

Vous pouvez charger les données dans la table de plusieurs manières !! Mais assurez-vous que le format de la table est valide.

  • Mettez d'abord la table spécifique dans l'emplacement de la table.

    Syntaxe: hadoop fs -put chemin_source destination_hive_table_location

    Ex: hadoop fs -put APPL.csv /user/test.db/apple/APPL.csv

  • Une fois le fichier dans le système de fichiers Hadoop, nous pouvons charger le fichier dans la table via la commande load dans la console hive

charger les données dans le chemin '/user/test.db/apple/APPL.csv' dans la table apple;

PS: Vous chargez les données CSV, assurez-vous donc que le tableau a le bon format de fichier d'entrée et de sortie de texte.

STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'


0 commentaires

0
votes

Cela a peut-être à voir avec la création de votre table J'ai eu la même erreur que je l'ai résolue en ajoutant "STORED AS TEXTFILE" à la fin de la requête de la ruche de la création de la table

plus tôt ma table était

     CREATE TABLE %(output_db)s.%(selected_query_tbl)s
    (
       query                     VARCHAR(255)
      ,ATC_beyond_10_percentage  DECIMAL(25,25)
      ,ATC_rate                  DECIMAL(25,25)
      ,block_5_tau               DECIMAL(25,25)
      ,Kendall_tau               DECIMAL(25,25)
    )STORED AS TEXTFILE;

maintenant elle est

    CREATE TABLE %(output_db)s.%(selected_query_tbl)s
    (
       query                     VARCHAR(255)
      ,ATC_beyond_10_percentage  DECIMAL(25,25)
      ,ATC_rate                  DECIMAL(25,25)
      ,block_5_tau               DECIMAL(25,25)
      ,Kendall_tau               DECIMAL(25,25)
    );

J'espère que ça aide :)


0 commentaires