[HADOOP] hdfs에서 mysql로 sqoop 내보내기에 실패했습니다. 문자를 이스케이프 처리하는 데 도움이 필요합니다
HADOOPhdfs에서 mysql로 sqoop 내보내기에 실패했습니다. 문자를 이스케이프 처리하는 데 도움이 필요합니다
hdfs에 파일이 있고 sqoop 테이블로 내보내는 중입니다. 아래의 로그 세부 사항을 찾으십시오.
Caused by: java.lang.RuntimeException: Can't parse input data: ' characters'
at tags.__loadFromFields(tags.java:335)
at tags.parse(tags.java:268)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:89)
... 10 more
sqoop 내보내기 명령
sqoop export \
--connect "**************************************" \
--username=**** \
--password=***** \
--table tags \
--export-dir /user/cloudera/movie_lens/tags_no_header.csv \
--batch \
--input-lines-terminated-by '\n' \
--input-fields-terminated-by ',' \
--num-mappers 9 \
테이블 구조 :
create table tags
(userId integer
,movieId integer
,tag varchar(150)
,timestamp decimal
);
기록 실패 : 660,260, "상상 세계, 인물, 이야기, 철학적", 1436680217
내 이해에 따르면 문자열 중간에 쉼표 ','로 인한 모호한 구문 분석으로 인해 실패합니다.
이 경우 --input-enclosed-by 및 --input-escaped-by 인수의 사용법을 이해하도록 도와주십시오. 또는 다른 해결책이 있습니까?
해결법
-
==============================
1.속성 --input-optionally-enclosed-by를 사용하여 해결했습니다. 내보내기 명령 :
속성 --input-optionally-enclosed-by를 사용하여 해결했습니다. 내보내기 명령 :
sqoop export \ --connect "jdbc:mysql://quickstart.cloudera:3306/movie_lens_db" \ --username=root \ --password=cloudera \ --table tags \ --export-dir /user/cloudera/escape_by_test.txt \ --batch \ --input-lines-terminated-by '\n' \ --input-fields-terminated-by ',' \ --input-optionally-enclosed-by '\"' \ --num-mappers 1 \ --outdir java_files
테이블 데이터 :
+--------+---------+---------------------------------------------------+------------+ | userId | movieId | tag | timestamp | +--------+---------+---------------------------------------------------+------------+ | 660 | 260 | imaginary world, characters, story, philosophical | 1436680217 | | 212 | 69712 | genuine characters | 1260688086 | +--------+---------+---------------------------------------------------+------------+
from https://stackoverflow.com/questions/43112262/sqoop-export-from-hdfs-to-mysql-failed-need-help-to-escape-the-characters by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 임팔라 : 오류 : AnalysisException : 파티션 사양이 없습니다. (0) | 2019.09.08 |
---|---|
[HADOOP] Apache Spark에서 여러 열을 추가하는 방법 (0) | 2019.09.08 |
[HADOOP] 여러 파일을로드 할 때 PySpark 작업이 실패하고 파일이 누락되었습니다 [중복] (0) | 2019.09.08 |
[HADOOP] Spark가있는 proto2를 실행할 수 없습니다 (0) | 2019.09.08 |
[HADOOP] 하둡 YARN 작업이 맵 0 %에서 멈추고 0 % 감소 (0) | 2019.09.08 |