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

Reply via email to