使用Parquet Fileformat为架构数据创建Hive(0.10)表

时间:2014-10-15 00:52:46

标签: mapreduce nested hive avro parquet

我想将数据从服务器导出到配置单元。 我有一个java级嵌套数据。 我成功地使用Avro Tools ReflectData创建了一个avro架构,并使用ReflectDatumWriter在avro文件中写出数据。在Hive中,我能够创建一个表并使用

指定模式
TBLPROPERTIES 
  ('avro.schema.url'='hdfs:///schema.avsc');

我可以看到有方法以镶木地板格式导出相同的数据 http://blog.cloudera.com/blog/2014/05/how-to-convert-existing-data-into-parquet/

让我说完成并在镶木地板文件中有相同的数据.. 如何在Hive中查询此导出镶木地板数据? 但是我如何为hive指定架构? 我不想在整个嵌套模式的hive中编写一个巨大的create table语句。如何为模式中的某些成员指定空值? 我有办法直接创建像avro架构一样的镶木地板架构,并使用create table statement?

给Hive

1 个答案:

答案 0 :(得分:0)

要查询配置单元中的数据,您可以创建配置单元外部表并指定文件的位置。喜欢这个

CREATE EXTERNAL TABLE XXX (...) ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat" OUTPUTFORMAT "parquet.hive.DeprecatedParquetOutputFormat" LOCATION '/you/location/here';

没有办法不指定此语句,因为独立于hive Metastore的文件生成以及AVRO所能做的只是生成数据文件