2017-05-19 11 views
1

ハイブ1.1.0を使用しています。わかりやすさのために、100の列を持つ巨大なテーブルの列の順序を変更する必要があります。しかし、テーブルの列を並べ替えるときに、以下のエラーで失敗します。ページ区切りのデータ形式の並べ替え列を持つハイブテーブル

列を並べ替える代わりに、表のビューを作成します。メタデータのレベル(メタストア)に

hive> desc test_parquet; 
OK 
name     string 
age      int 
dept     string 
salary     string 
city     string 

# Partition Information 
# col_name    data_type    comment 

city     string 
Time taken: 0.053 seconds, Fetched: 10 row(s) 
hive> ALTER TABLE test_parquet REPLACE COLUMNS (age int,name string, dept string, salary string); 
OK 
Time taken: 0.451 seconds 
hive> desc test_parquet; 
OK 
age      int 
name     string 
dept     string 
salary     string 
city     string 

# Partition Information 
# col_name    data_type    comment 

city     string 
Time taken: 0.051 seconds, Fetched: 10 row(s) 
hive> select * from test_parquet; 
OK 
Failed with exception java.io.IOException:java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.io.IntWritable 
Time taken: 0.121 seconds 

答えて

0

ALTER TABLE ... REPLACE COLUMNS作品。
新しい列の順序が実際のデータと一致しません。
小包の場合、例外があります。テキストファイルの場合、NULL値が返されます。
ビューを使用して、代替ソリューションを使用する必要があります。

+0

はい、私も同じように感じました...しかし、それは寄木細工がスキーマに基づいてデータを格納するように変わって見えます。それで、列をそれぞれマップできるはずです。 –

関連する問題