2017-07-10 1 views
1

J'avais les données de teradata à Hive en utilisant la commande d'importation sqoop.Comment convertir bigint en datetime en ruche?

Pour l'une des tables de teradata, j'ai un champ de date. Après sqooping, mon champ de date apparaît sous la forme d'un horodatage avec le type de données bigint.

Mais j'ai besoin du champ de date comme type de données de date dans la table de ruche. Quelqu'un peut-il me suggérer de réaliser cela?

+1

À quoi ressemble _timestamp avec bigint datatype_? Ajouter quelques échantillons à votre poste s'il vous plaît. – Andrew

+0

Je suis tombé sur cette année, le seul moyen que j'ai trouvé était de lancer le champ en tant que varchar dans le cadre de l'export de Sqoop. – shainnif

+0

Mon champ de date dans hue est un horodatage à 13 chiffres, qui ressemble à: 1450051200000 qui est de type bigint. Mais j'attends le type de date au lieu de bigint dans hue après sqooping. –

Répondre

0

J'ai eu ce problème. Mon approche était de créer la table Hive en premier. Vous devez faire une équivalence entre les types de données Teradata et les types de données de votre version Hive. Après cela, vous pouvez utiliser l'argument Sqoop --hive-table <table-name> pour insérer dans cette table.

+0

Merci beaucoup pour votre suggestion. Pouvez-vous expliquer avec un exemple ici ... –

+0

Pouvez-vous s'il vous plaît publier la commande d'importation sqoop avec l'équivalence entre les types de données Teradata et mes types de données de version Hive? –

+0

@ Stack777 Ce serait simplement une instruction 'CREATE TABLE' dans Hive, pas un argument supplémentaire dans sqoop. De cette façon, vous pouvez définir votre schéma de table comme vous le souhaitez. – danielsepulvedab

1
select to_date(from_unixtime(your timestamp)); 

example: 

select to_date(from_unixtime(1490985000)); 
output:2017-04-01 

J'espère que cela fonctionnera. s'il vous plaît laissez-moi savoir si je me trompe.

+0

Le format que vous avez mentionné fonctionne comme prévu. Mais, c'est juste un droit de lecture. ce que je m'attends à ce que, après l'importation de sqoop, le champ de date dans la ruche devrait être de type datetime. –