• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Sqoop:使用八进制值(\ 0)作为分隔符

hadoop 来源:Aavik 7次浏览

由于我在其中一个字段中有特殊字符,因此我想使用较小的值作为分隔符。 Hive对分隔符(\ 0)可以正常工作,但sqoop会因NoSuchElement异常而失败。看起来它不会将分隔符检测为\ 0。Sqoop:使用八进制值( 0)作为分隔符

这是我的配置单元的一个sqoop脚本的样子。请任何帮助。

CREATE TABLE SCHEMA.test 
(
    name CHAR(20), 
    id int, 
    dte_report date 
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\0' 
LOCATION '/user/$USER/test'; 

sqoop-export \ 
    -Dmapred.job.name="TEST" \ 
    -Dorg.apache.sqoop.export.text.dump_data_on_error=true \ 
    --options-file ${OPTION_FILE_LOCATION}\conn_mysql \ 
    --export-dir /user/$USER/test \ 
    --input-fields-terminated-by '\0' \ 
    --input-lines-terminated-by '\n' \ 
    --input-null-string '\\N' \ 
    --input-null-non-string '\\N' \ 
    --table MYSQL_TEST \ 
    --validate \ 
    --outdir /export/home/$USER/javalib 

在vi编辑器,分隔符看起来像“^ @”与OD -c分隔符是\ 0


===========解决方案如下:

你应该用\ 000作为分隔符时,它会生成字符作为分隔符。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)