Hive导入与导入AVRO格式不兼容

时间:2018-02-23 11:25:11

标签: import sqoop

我有以下代码:

  sqoop import --connect jdbc:mysql://localhost/export \
  --username root \
  --password cloudera \
  --table cust \
  --hive-import \
  --create-hive-table \
  --fields-terminated-by ' '  \
  --hive-table default.cust \
  --target-dir /user/hive/warehouse/cust \
  --compression-codec org.apache.org.io.compress.GzipCodec \
  --as-avrodatafile \
  -m 1

得到以下错误,请帮忙。 Hive导入与导入AVRO格式不兼容。

1 个答案:

答案 0 :(得分:0)

目前,Sqoop不支持将AVRO格式直接导入HIVE表格,因此您可以导入HDFS并在HIVE中创建 EXTERNAL TABLE

第1步:导入hdfs

  

sqoop import --connect jdbc:mysql:// localhost / export \

     

- 用户名root --password cloudera    - 表格   --target-dir / user / hive / warehouse / cust \   --compression-codec org.apache.org.io.compress.GzipCodec \   --as-avrodatafile -m 1

此导入将在当前目录(Linux)中创建一个模式文件,扩展名为 .avsc 。将此文件复制到HDFS中的某个位置(PATH_TO_THE_COPIED_SCHEMA)。

步骤2:在HIVE中创建一个外部表,如

  

CREATE EXTERNAL TABLE cust   存储为AVRO   LOCATION'hdfs:/// user / hive / warehouse / cust'   TBLPROPERTIES('avro.schema.url'='hdfs:/// PATH_TO_THE_COPIED_SCHEMA/cust.avsc');