안녕하세요, 나는 업스트림에서 CSV 파일로 데이터를 가져와 그 위에 하이브 테이블을 만듭니다. 이제 일부 csv 파일에는 몇 개의 행/열에 제어 M 문자가 포함되어 있습니다. 예 : 3 열의 데이터하이브 테이블 행에서^M을 제거하는 방법은 무엇입니까?
abc^M,def,ghi
jkl,mno^M,pqr
이제 I 상기 데이터 이후 LOAD DATA INPATH '/path/to/file' INTO TABLE mytable
를 이용한 하이브 테이블로 데이터를로드 제어 M의 문자 아래에 표시되어 있으므로 하이브 데이터 위에 새로운 라인에 행 M 하이브 개행 및 나누기로 간주 제어 포함 테이블은 2 대신 4 행 수를 반환합니다. regex_replace(mycol,'[\x01-\x1A]',"\\")
을 사용하여 제어 문자 M을 포함한 모든 제어 문자를 대체하려고 시도했지만 작동하지만 예를 들어 \ 기호 뒤에 남습니다. abc^M
은 abc\
이 될 것입니다. 데이터를 변경하고 싶지 않습니다. 더 좋은 방법이 있습니까? 이 경우 사용자 지정 serde조차 도움이 될지 잘 모르겠습니다. 안내해주십시오. 나는 하이브에게 새로운 사람이다. 미리 감사드립니다.
왜'사용하지 regex_replace (mycol가 ' [\ x01- \ x1A] ',' ')' – Ambrish