0
PIG 스크립트의 일부로 UDF를 사용하여 생성 된 XML을 가져와야하고 XML이 너무 큽니다 (약 1.5GB). 현재 내가 내부 문자열 버퍼를 사용하는 문자열큰 XML을 Java의 문자열로 변환하는 방법
StringWriter sw = new StringWriter();
XMLWriter output = new XMLWriter(sw, xmlFormat);
try {
output.write(document);
output.close();
} catch (IOException e) {}
return sw.toString();
이것은 StringWriter를로 OutOfMemoryError가를 throw로 XML을 변환하는 코드 아래에 이용하고 있고 Arrays.As 배열은 인덱스에 대해 정수를 사용하여 XML의 길이가 INT 넘어에 따라 다르다 범위.
이 큰 xml을 String으로 변환하여 돼지 스크립트로 다시 보내는 방법이 있습니까? 또는 다른 방법으로 달성 할 수 있습니까? 참고로
- 우리가
갱신 1 처리 XMLS
에 대한 DOM4J (org.dom4j.Document
)를 사용하는 : 을 나는 800메가바이트하지만 여전히 실패 1.5 GB입니다 파일을 저장할 이제 수 있어요있는 코드 아래에 시도
ByteArrayOutputStream result = new ByteArrayOutputStream();
try {
XMLWriter output = new XMLWriter(result, xmlFormat);
output.write(document);
output.close();
return result.toString("UTF-8");
} catch (IOException e) {}
AFAIK XML은 이미 텍스트 기반 형식이므로 실제로는 실제로 String입니다. 또한 나는 왜 그것을 정확하게 String으로 변환하려고하는지, 왜 당신의 추론에 문제가 있는지를 모른다. 어떤 경우 든, 1) JVM에 더 많은 메모리를 할당하거나 2) 전송을 위해 String 대신 파일을 사용하고 다른 쪽에서 읽을 수 있습니다. – m0skit0