hive-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörn Franke <jornfra...@gmail.com>
Subject Re: Hive - Avro - Schema Manipulation
Date Sun, 24 Sep 2017 06:09:26 GMT
insert into dep_av values(8,null) should do what you intent.

> On 24. Sep 2017, at 03:03, BD <bigdatamg@gmail.com> wrote:
> 
> Hi ,
> 
> I have imported (using sqoop) departments table from retail_db in hdfs as avro file.
Have created an external table stored as hive and used the avro schema generated by sqoop.

> 
> I want to modify the avro schema so that a column is non nullable and if not specified
in insert query then a default value is inserted into the table. Have tried modifying the
avro schema as following, but it does not help. 
> 
> Avro Schema
> 
> {
>   "type" : "record",
>   "name" : "departments",
>   "doc" : "Sqoop import of departments",
>   "fields" : [ {
>     "name" : "department_id",
>     "type" :  "int" ,
>     "columnName" : "department_id",
>     "sqlType" : "4"
>   }, {
>     "name" : "department_name",
>     "type" : "string",
>     "default" : "default_dep_name" ,
>     "columnName" : "department_name",
>     "sqlType" : "12"
>   } ],
>   "tableName" : "departments"
> }
> 
> 
> If i do not provide the value for department name then hive gives error stating that
two columns expected. Is this a valid use case? if so any suggestion?
> 
> 
> hive> insert into dep_av values(8);
> FAILED: SemanticException [Error 10044]: Line 1:12 Cannot insert into target table because
column number/types are different 'dep_av': Table insclause-0 has 2 columns, but query has
1 columns.
> 
> 
> regards

Mime
View raw message