2012-01-31 15 views
4

私はhadoopにデータを持ち、パーティション(日付と時間)を使って外部テーブルを作成しました。テーブルの作成は問題ありませんが、データを照会しようとすると何の結果も得られません。パーティションで外部を作成する

Hadoopのファイル・パス - >/test/dt=2012-01-30/hr=17/testdata*

書作成 - >

CREATE EXTERNAL TABLE test(adate STRING, 
remoteIp STRING, 
url STRING, 
type STRING, 
ip STRING, 
useragent STRING) 
COMMENT 'This is the Test view table' 
PARTITIONED BY(dt STRING, hr STRING) 
ROW FORMAT SERDE 'com.test.serde.ValidRawDataSerDe' 
STORED AS SEQUENCEFILE 
LOCATION '/test'; 

表の作成メッセージ - >

OK 
Time taken: 0.078 seconds 

私は結果になっていない選択クエリイムを使用 - >

hive> select * from test; 
OK 
Time taken: 0.052 seconds 
hive> select * from test where dt='2008-08-09' and hr='17'; 
OK 

ここには何もありません。助けてください。

答えて

5

はい。 Hiveに新しいパーティションについて通知する必要があります。使用するコマンドは、ALTER TABLE ... ADD PARTITIONです。

+0

ありがとうOlaf。上記の声明の例を教えてもらえますか? – Balaji

+0

私はOlafの質問を受け取りました。 "ALTER TABLE ADD PARTITION"を克服する方法はありますか?私は時間と4時間のデータを要約する必要があるので。私はテーブルをいつも追加パーティションで変更したくないのですか:-( – Balaji

+0

@Balaji:これはプログラムで、例えばHive JDBC経由で行うことができると言及しましたか? – Olaf

1

HIVE JDBC経由の外部表の作成ハイブのデータウェアハウスには反映されません。ハイブJDBC経由でテーブルを作成した後

stmt.executeQuery("create external table trial5 (TOPIC STRING) row format delimited fields terminated by '' STORED as TEXTFILE LOCATION '/user/ranjitha/trial5'");,

と私は、このファイルから取得しようと、何も返されません...

ここでは、このリンクで: https://groups.google.com/a/cloudera.org/forum/?fromgroups#!topic/cdh-user/YTekdFtbelE、それが外部表の作成が可能ではないと言います...誰かが上記の私を導くことができれば、本当に参考になる

..

感謝をHIVE JDBCを使用して!

+0

JDBCを使用して2つの操作を実行してみてください。 - 1)単純なテーブルを作成します(外部はありません)。2)ローカルのinpathからデータをロードします。 https://cwiki.apache.org/Hive/languagemanual-dml.html#LanguageManualDML-Loadingfilesintotables – Balaji