2017-10-18 12 views
0

Je table1 sans clé de partition, je veux créer un table2, avec le même schéma que table1, mais défini comme clé de partition d'une colonne « datestr ». Comment puis-je écrire la requête CREATE TABLE LIKE pour le faire?Ruche CREATE TABLE comme une autre partition set de table clé

table1: 

datestr, userID, transaction, balance 




table2 (set datestr as partition key): 

datestr, userID, transaction, balance 

Répondre

0

Le CREATE TABLE LIKE DDL ne prend pas en charge la mise en partitions

Je crois que vous pouvez effectuer une requête CTAS comme si

Create table table2 (userID INT, transaction STRING, balance DECIMAL) 
Partitioned by (datestr STRING) 
as 
select userID, transaction, balance, datestr 
From table1; 

Bien sûr ajouter les types de colonnes en conséquence

+0

La chose est transaction est une structure de type "struct of array" et "array of many other structs and arrays". Je ne peux simplement pas développer le schéma ... Y at-il un moyen d'assigner la clé de partition sans avoir à spécifier les types? – daydayup

+0

Je suppose que 'datestr' est une chaîne. Hive peut gérer les structures et les tableaux correctement ... Vous ne les partitionnez pas, mais vous devez les spécifier pour créer une table, partitionnée ou non. –

+0

De même, vous pouvez copier littéralement la commande 'SHOW CREATE TABLE' de l'autre table, puis ajoutez la partition pour la nouvelle table, puis effectuez un 'INSERT INTO' –