2017-04-06 4 views
0

hadoopにハイブ2.1.1をインストールしました。ここには名前付きデータの列(dis string、dt timestamp)を持つテーブルが作成されています。別の列に日付と時刻を格納したいので、名前data1と列(dis string、dat date、time string)を持つ別のテーブルを作成しました。どのように私はテーブルのデータからdata1にデータをコピーすることができます。 私は「テーブルデータ1を選択してください、データを変換する(日付、dt)、データから変換する(時刻、dt)」を実行してみました。日付と時刻をタイムスタンプから切り離して、ハイブの別のテーブルに格納する方法

答えて

0

クエリ以下使用

insert into table data1 select dis,TO_DATE(dt),concat(HOUR(DT),':',MINUTE(dt)) from data; 
+0

(1)何秒ありますか? (2)なぜ 'concat'を使わず、' concat_ws'を使わないのですか? –

+0

私はちょうどそこに時間を含めるためにサンプルを提供しました、私たちの要件に従って使用することができます。はい、私たちもconcat_wsも使用できます..ありがとう –

0
select dis,to_date(dt),split(dt,' ')[1] 

又は

select dis,to_date(dt),substr(dt,12,8) 

デモ

with t as (select timestamp '2017-04-06 04:20:33' as dt) 
select to_date(dt),split(dt,' ')[1] from t; 
OK 
_c0 _c1 
2017-04-06 04:20:33 

with t as (select timestamp '2017-04-06 04:20:33' as dt) 
select to_date(dt),substr(dt,12,8) from t; 
OK 
_c0 _c1 
2017-04-06 04:20:33 
関連する問題