2016-07-28 3 views
2

J'essaie de changer l'emplacement de la partition de ma table de ruche externe.Impossible de modifier l'emplacement de la partition dans la ruche

commande que j'essaie de courir:

ALTER TALBE sl_uploads PARTITION (hivetimestamp='2016-07-26 15:00:00') SET LOCATION '/data/dev/event/uploads/hivetimestamp=2016-07-26 15:00:00' 

erreur que je reçois:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.net.URISyntaxException: Illegal character in path 

Mes données pour une partition particulière existe sur le chemin:

/data/dev/event/uploads/hivetimestamp=date time/actual_data 

Je pense que l'espace crée un problème. Mais toute aide à ce sujet serait géniale.

+0

essayer échapper à l'espace en utilisant \: SET LOCATION '/ data/dev/événement/uploads/hivetimestamp = 26/07/2016 \ 15:00:00' –

+0

Non qui ne fonctionne pas. Il donne toujours la même erreur. J'avais déjà essayé cela avant de sauter le caractère d'espace. – Austin

Répondre

0

votre HDDS dans le chemin est exact?

add/actual_data /?

0

Hive ne peut pas lire le chemin complet hdfs en raison de l'espace dans «2016-07-26 15:00:00»; vous pouvez utiliser les commandes ci-dessous;

hive> set part=2016-07-26 15:00:00; 
hive>ALTER TALBE sl_uploads PARTITION (hivetimestamp='2016-07-26 15:00:00') SET LOCATION '/data/dev/event/uploads/[email protected]'; 
+0

Il définit la partie et modifie l'emplacement de la partition, mais quand je lance le compte select (*) de sl_uploads où hivetimestamp = '2016-07-26 15:00:00' cela ne fonctionne pas. Il donne l'erreur: ÉCHEC: SemanticException java.io.FileNotFoundException: Fichier hdfs: // data/dev/event/uploads/hivetimestamp = @ la pièce n'existe pas. – Austin