[HADOOP] 아파치 스파크 JavaSchemaRDD 그것에 RDD 입력 데이터가 비록 비어
HADOOP아파치 스파크 JavaSchemaRDD 그것에 RDD 입력 데이터가 비록 비어
안녕하세요 저는 40 열 탭으로 구분 된 파일의 큰 아무 있습니다. 나는 단지 몇 열을 선택에 집계를 적용 할. 아파치 스파크 내 파일이 하둡에 저장된으로 도울 수있는 가장 좋은 후보라고 생각합니다. 나는 다음과 같은 프로그램이
public class MyPOJO {
int field1;
String field2; etc
}
JavaSparkContext sc;
JavaRDD<String> data = sc.textFile("path/input.csv");
JavaSQLContext sqlContext = new JavaSQLContext(sc);
JavaRDD<Record> rdd_records = sc.textFile(data).map(
new Function<String, Record>() {
public Record call(String line) throws Exception {
String[] fields = line.split(",");
MyPOJO sd = new MyPOJO(fields[0], fields[1], fields[2], fields[3]);
return sd;
}
});
코드가 잘 실행 위에 나는 액션 rdd_record.saveAsTextFile ( "/로 / 하둡 /")를 적용 할 때; 나는 그것이 RDD의 출력 부분-00000 파일을 만들어 볼 수 있습니다. 그러나 나는 다음을 수행하려고 할 때
JavaSchemaRDD table = sqlContext.applySchema(rdd_records, MyPojo.class);
table.printSchema(); //prints just root and empty lines
table.saveAsTextFile("/to/hadoop/path");//prints part file with [] for each line
나는 왜 MyPojo.class 모든 필드가 문제 빈 JavaSchemaRDD하고 일부 파일에 아무것도 인쇄되지 않은 경우 잘 모릅니다. 나는 스파크에 새로운 오전 안내하시기 바랍니다. 미리 감사드립니다.
해결법
-
==============================
1.마이너 관찰 : 당신은 ... 당신이 그것을 수정하고 실행할 수 있습니다 파일은 탭으로 구분 된,하지만 당신은 라인을 사용하여 분할 보인다 말했다? 데이터가 탭으로 구분되는 경우 SD는 진정한 스키마가 없을 수 있습니다
마이너 관찰 : 당신은 ... 당신이 그것을 수정하고 실행할 수 있습니다 파일은 탭으로 구분 된,하지만 당신은 라인을 사용하여 분할 보인다 말했다? 데이터가 탭으로 구분되는 경우 SD는 진정한 스키마가 없을 수 있습니다
-
==============================
2.나는 모든 필드에 대한 게터 / 세터를 추가하고 작업 및 JavaSchemaRDD는 데이터가 포함 된 시작 MyPojo 클래스에 Serializable 인터페이스를 구현하는 경우 문서를 스파크에 accoding의.
나는 모든 필드에 대한 게터 / 세터를 추가하고 작업 및 JavaSchemaRDD는 데이터가 포함 된 시작 MyPojo 클래스에 Serializable 인터페이스를 구현하는 경우 문서를 스파크에 accoding의.
public class MyPOJO implements Serializable { private int field1; private String field2; public int getField1() { returns field1; } public void setField1(int field1) { this.field1 = field1; } public String getField2() { return field2; } public void setField1(String field2) { this.field2 = field2; } }
from https://stackoverflow.com/questions/30082401/apache-spark-javaschemardd-is-empty-even-though-input-rdd-to-it-has-data by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 외부 라이브러리와 하둡 하이브 UDF (0) | 2019.09.27 |
---|---|
[HADOOP] HiveServer2는 HDFS의 디렉토리를 많이 생성 / tmp를 / 하이브 / 하이브 (0) | 2019.09.27 |
[HADOOP] 어떻게 HDFS 블록의 크기를 관리합니까? (0) | 2019.09.27 |
[HADOOP] 나는 HDFS의 네임 노드를 포맷하려고하지만 말합니다 오전 : 권한이 거부 (0) | 2019.09.27 |
[HADOOP] String 형의 ID가 입력 파일에 대한 Giraph 최선의 정점 입력 형식, (0) | 2019.09.27 |