[HADOOP] 정수에서 문자 제거
HADOOP정수에서 문자 제거
FileDataModel은 형식의 데이터를 허용합니다.
userId,itemId,pref(long,long,Double).
현재 숫자 끝에 'x'로 구성된 itemId가 있습니다. 'x'를 제거하도록 itemID의 일부를 어떻게 편집합니까? 간단한 try catch 문 으로이 작업을 수행 할 수 있습니까?
DataModel model = null;
try{
model = new FileDataModel(new File("book_data/BX-Book-Ratings.csv"));
}catch(NumberFormatException e){
REMOVE X
}
암호:
DataModel model = new FileDataModel(new File("book_data/BX-Book-Ratings.csv"));
오류:
Exception in thread "main" java.lang.NumberFormatException: For input string: "034545104X"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
데이터:
276725,034545104X,0
276726,155061224,5
276727,446520802,0
276729,052165615X,3
해결법
-
==============================
1.한 가지 방법은 파일에서 프리 프로세서를 실행하여 파일의 컨텐츠를 변환하여 FileDataModel과 호환되는지 확인하는 것입니다. 데이터 형식이 매우 간단한 경우 정규식 바꾸기 만 사용하면됩니다. 그렇지 않으면 데이터를 메모리로 가져올 수있는 변환기를 사용하고 변환기로 조작을 수행하고 결과를 직렬 변환기로 다시 저장하는 것이 좋습니다.
한 가지 방법은 파일에서 프리 프로세서를 실행하여 파일의 컨텐츠를 변환하여 FileDataModel과 호환되는지 확인하는 것입니다. 데이터 형식이 매우 간단한 경우 정규식 바꾸기 만 사용하면됩니다. 그렇지 않으면 데이터를 메모리로 가져올 수있는 변환기를 사용하고 변환기로 조작을 수행하고 결과를 직렬 변환기로 다시 저장하는 것이 좋습니다.
다음과 같은 것 :
File file = new File("book_data/BX-Book-Ratings.csv"); FileDataModelTransformer transformer = new FileDataModelTransformer(); transformer.transformInPlace(file); DataModel model = new FileDataModel(file);
그건 그렇고, File보다 스트림이나 버퍼에 의존하는 것이 더 유연합니다.
-
==============================
2.가장 쉬운 방법, IMHO는 if 문을 사용하는 것입니다.
가장 쉬운 방법, IMHO는 if 문을 사용하는 것입니다.
String itemIdStr = "034545104X"; // for example if (itenIdStr.endsWith("X")) { itemIdStr = itemIdStr.substring(0, itemIdStr.length() - 1); } long itemId = Long.parseLong(itemIdStr);
from https://stackoverflow.com/questions/40196498/remove-character-from-integer by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop이 서비스를 시작하기 전에 비밀번호를 묻는 이유는 무엇입니까? (0) | 2019.09.15 |
---|---|
[HADOOP] Hadoop에서 Python을 사용하여 map reduce를 실행할 수 없습니까? (0) | 2019.09.15 |
[HADOOP] Cassandra Upgrade 0.8.2-> 0.8.4 오류“모든 엔드 포인트 연결 실패” (0) | 2019.09.15 |
[HADOOP] SQL Hive 하위 쿼리 오류 (0) | 2019.09.15 |
[HADOOP] hadoop에서 데이터 노드의 디스크 공간을 알고 있습니까? (0) | 2019.09.15 |