次のコマンドとavroスキーマを使用してハイブテーブルを作成しました。.avroファイルからハイブテーブルにデータをインポート
CREATE TABLE table_name
PARTITIONED BY (t string, y string, m string, d string, h string, hh string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
TBLPROPERTIES (
'avro.schema.url'='hdfs://location/schema.avsc');
私はHDFSで作成したデータを作成したテーブルにダンプします。
私はt/y/m/d/h/hh/data.avroディレクトリ構造のデータを持っているHDFSの場所を持っています 私はパーティションに応じて複数のディレクトリを持っています。
作成したテーブルにすべてのデータをダンプします。
外部テーブルを使用しようとしましたが、例外が発生しています。
私はディスクへの書き込み権限がないため、外部テーブルの作成でLOCATION 'path_hdfs'を使用することはできません。 – KrunalParmar
LOAD DATAコマンドを使用しているときに、次の例外が発生しています,,, FAIRED:SemanticException [エラー10062]:宛先テーブルが分割されているためにパーティション列を指定する必要があります。 – KrunalParmar
作成クエリ中にパーティションを宣言してから、新しいデータをインポートした後(パーティション側に新しい値を指定して)、MSCK REPAIR
以下の構文が役立ちます。
出典
2017-04-11 11:56:23 isudarsan
関連する問題