
# 通过Sqoop读取MySQL数据并写parquet文件到OBS时失败
#### 用户问题
通过Sqoop读取MySQL数据，然后直接写到OBS，指定parquet格式时写入报错，不指定parquet时不报错。
#### 问题现象
![](https://support.huaweicloud.com/trouble-mrs/zh-cn_image_0000001803339205.png "点击放大")
#### 原因分析
parquet格式不支持hive3，用Hcatalog方式写入。
#### 处理步骤
采用Hcatalog的方式，参数指定对应的Hive库和表，需要修改SQL语句指定到具体字段（需要修改脚本）。
原来的脚本：
```
sqoop import --connect 'jdbc:mysql://10.160.5.65/huawei_pos_online_00?zeroDateTimeBehavior=convertToNull' --username root
--split-by id
--num-mappers 2
--query 'select * from pos_remark where 1=1 and $CONDITIONS'
--target-dir obs://za-test/dev/huawei_pos_online_00/pos_remark
--delete-target-dir
--null-string '\\N'
--null-non-string '\\N'
--as-parquetfile
-P
```
修改后的脚本（可以执行成功）：
```
sqoop import --connect 'jdbc:mysql://10.160.5.65/huawei_pos_online_00?zeroDateTimeBehavior=convertToNull' --username root
--split-by id
--num-mappers 2
--query 'select id,pos_case_id,pos_transaction_id,remark,update_time,update_user,is_deleted,creator,modifier,gmt_created,gmt_modified,update_user_id,tenant_code from pos_remark where 1=1 and $CONDITIONS‘
--hcatalog-database huawei_dev
--hcatalog-table ods_pos_remark
-P
```
