하이브 테이블에로드 된 열 중 하나에 실제 값 (ABC
) 접미사가 붙은 정크 문자 ("~
)가있는 문제가 있습니다. 따라서이 열에 표시되는 실제 값은 (ABC"~
)입니다.하이브의 특정 정크 문자를 바꿉니다
이 열은 ABC (또는 이와 유사한 문자열) 또는 NULL을 가질 수 있습니다. 테이블이 크고 업데이트가 옵션이 아닙니다.
문자열 (ABC
) 또는 NULL이 포함 된 임시 테이블을 만드는 방법을 생각해 본 결과 원본 테이블에서이 임시 테이블로 데이터를 복사하는 동안이 정크 문자 ("~
)를 완전히 제거하려고합니다. 표.
이 쓰레기를 어떻게 제거 할 수 있습니까? 나는 regexp 함수를 사용해 보았지만 성공하지 못했다. 어떤 제안?
대체 이유. Hive는 Schema on Read이기 때문에. 하이브 serde (예 : opencsvserde)를 사용하여 하이브 테이블을 만들 수 있습니다.이 하이브 시퀀스는 이스케이프 시퀀스 (여기에서 "~"를 이스케이프 처리 할 수 있습니다.)를 통해 읽을 수 있습니다.이 작업은 교체 중에 발생할 수있는 광범위한 IO를 줄이는 데 도움이됩니다. 가능한 경우 데이터 레코드가 적습니다. –
데이터를 어떻게로드 했습니까? 문제는 거기에있는 것처럼 들립니다. –