2017-12-18 23 views
0

필드 중 하나에 특수 문자가 있기 때문에 더 낮은 값을 구분 기호로 사용하고 싶습니다. 하이브는 구분 기호 (\ 0)로 잘 동작하지만 NoSuchElement 예외로 인해 sqoop이 실패합니다. 구분 기호가 \ 0으로 감지되지 않는 것 같습니다.Sqoop : 구분 기호로 8 진수 값 ( 0) 사용

이것은 내 하이브가 sqoop 스크립트처럼 보입니다. 제발 도와주세요. 구분 기호 당신은 구분 기호로, 그것은 구분 기호로 그 문자를 생성합니다 000 \ 사용해야합니다 \ 0

+0

나를위한 오타처럼 보입니다. sqoop 매개 변수의 입력 필드가 "0"이 아닌 0으로 설정되어 있습니다. – roh

답변

0

입니다 -c VI 편집기에서

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 

은 구분 기호 '^ @'같은과 외경으로 보인다.

0

이 문제점을 해결할 수있는 my sql conn 문자열에서 문자 세트를 UTF 8로 설정하십시오.

mysql.url=jdbc:mysql://localhost:3306/nbs?useJvmCharsetConverters=false&useDynamicCharsetInfo=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&useEncoding=true