2017-12-22 26 views
0

"0001546"과 같은 문자열 값을 가진 xml을 처리해야합니다. 데이터 프레임 xml API를 사용하여 데이터 프레임에로드하면 실제 문자열 값이 double 유형으로 변환됩니다. 이중 값이 "0001546"에서 1546으로 전체 값을 변경하는 문제가 있습니다. 이것은 숫자에 대한 문자열의 암시 적 유형 캐스팅 때문에 발생하지만 이런 행동을 원하지 마라. 기대되는 실제 가치는 그대로 취급되어야합니다. 필자의 경우에는 불가능한 xml 용 수동 스키마를 지정하는 것이 하나의 옵션입니다. csv 파일과 같은 추론 스키마를 사용하지 않도록 databrics에보고 된 버그를 발견했습니다. 이 문제를 해결할 수있는 해결 방법/해결책이 있습니까? 당신의 도움을 주셔서 감사합니다.Databrics spark API를 사용하여 xml 처리를위한 스키마 옵션을 계발하십시오

답변

0

새로운 릴리스에서 수정 될 때까지 전술적 해결책을 발견했습니다. 처리하고자하는 모든 xml 파일이있는 입력 폴더에 삽입되는 자리 표시 자 XML 파일을 만들었습니다. 자리 표시 자 XML 파일의 id 필드는 <Id>x0001546</Id>과 같은 값을 갖습니다. 추가 'x'문자가 더미 레코드에 추가되었습니다. 기본적으로 샘플링 유추 스키마 값은 1이므로 (모든 레코드에 대해 필요가 없음) 스파크 인식으로이 필드를 영숫자로 처리해야합니다. 나중에 나는 dataframe에서 자리 표시 자 XML 레코드를 필터링했습니다.