Comment insérer des données dans les données complexes de type “Struct” dans la Ruche
Je suis totalement nouveau dans la Ruche et de Dépassement de Pile. Je suis en train de créer un tableau avec des données complexes de type "STRUCT", puis le remplir à l'aide de INSERT INTO TABLE
dans la Ruche.
Je suis en utilisant le code suivant:
CREATE TABLE struct_test
(
address STRUCT<
houseno: STRING
,streetname: STRING
,town: STRING
,postcode: STRING
>
);
INSERT INTO TABLE struct_test
SELECT NAMED_STRUCT('123', 'GoldStreet', London', W1a9JF') AS address
FROM dummy_table
LIMIT 1;
J'obtiens l'erreur suivante:
Erreur lors de la compilation d'instruction: ÉCHEC: semanticException [Erreur
10044]: Impossible d'insérer dans la cible parce que la colonne numéro de type sont
différents "struct_test': Impossible de convertir la colonne 0 de struct à
array>.
J'ai été en mesure d'utiliser un code similaire avec succès pour créer et remplir un type de données de Tableau, mais éprouve de la difficulté avec les Struct. J'ai essayé des tas d'exemples de code que j'ai trouvé en ligne, mais aucun d'entre eux semblent fonctionner pour moi... je voudrais vraiment l'apprécier un peu d'aide sur ce que je suis coincé sur elle pendant un bon moment maintenant! Merci.
- Attention, les valeurs null prendre plus d'effort issues.apache.org/jira/browse/HIVE-4022
Vous devez vous connecter pour publier un commentaire.
votre erreur sql. vous devez utiliser sql:
Vous ne pouvez pas insérer un type de données complexe directement dans la Ruche.Pour l'insertion des structs vous avez la fonction named_struct. Vous avez besoin de créer un mannequin table avec les données que vous voulez insérer dans les Structures de la colonne de la table désirée.
Comme dans votre cas, créez une table factice
Puis à insérer dans le tableau souhaité faire
Pas besoin d'en créer table factice : il suffit d'utiliser la commande :
est Possible:
vous devez donner les noms de colonnes dans la phrase de mannequin ou d'une autre table.
Ou