313.4. Spring Boot Auto-Configuration
구성 요소는 아래 나열된 4 가지 옵션을 지원합니다.
| 이름 | 설명 | 기본값 | 유형 |
|---|---|---|---|
| camel.component.spark.enabled | spark 구성 요소 사용 | true | 부울 |
| camel.component.spark.rdd | 계산하기 위한 RDD입니다. 옵션은 org.apache.spark.api.java.JavaRDD like 유형입니다. | 문자열 | |
| camel.component.spark.rdd-callback | RDD에 대해 작업을 수행합니다. 옵션은 org.apache.camel.component.spark.RddCallback 유형입니다. | 문자열 | |
| camel.component.spark.resolve-property-placeholders | 구성 요소가 시작 시 자체적으로 속성 자리 표시자를 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.Only properties which are of String type can use property placeholders. | true | 부울 |
# RDD 작업
RDD 작업을 호출하려면 다음 URI를 사용합니다.
Spark RDD 생산자
spark:rdd?rdd=#testFileRdd&rddCallback=#transformation
여기서 rdd 옵션은 Camel 레지스트리에서 RDD 인스턴스의 이름을 나타내는 반면, rddCallback 은 org.apache. camel.component.spark.RddCallCallCallback 인터페이스 (또는 레지스트리에서도 마찬가지)의 구현을 나타냅니다. RDD 콜백은 지정된 RDD에 수신되는 메시지를 적용하는 데 사용되는 단일 메서드를 제공합니다. 콜백 계산의 결과는 교환에 본문으로 저장됩니다.
Spark RDD 콜백
public interface RddCallback<T> {
T onRdd(JavaRDDLike rdd, Object... payloads);
}다음 코드 조각은 메시지를 작업에 입력으로 보내고 결과를 반환하는 방법을 보여줍니다.
spark 작업 호출
String pattern = "job input";
long linesCount = producerTemplate.requestBody("spark:rdd?rdd=#myRdd&rddCallback=#countLinesContaining", pattern, long.class);Spring 빈으로 등록된 위의 코드 조각에 대한 RDD 콜백은 다음과 같습니다.
Spark RDD 콜백
@Bean
RddCallback<Long> countLinesContaining() {
return new RddCallback<Long>() {
Long onRdd(JavaRDDLike rdd, Object... payloads) {
String pattern = (String) payloads[0];
return rdd.filter({line -> line.contains(pattern)}).count();
}
}
}Spring의 RDD 정의는 다음과 같습니다.
Spark RDD 정의
@Bean
JavaRDDLike myRdd(JavaSparkContext sparkContext) {
return sparkContext.textFile("testrdd.txt");
}313.4.1. void RDD 콜백
RDD 콜백이 Camel pipeline으로 값을 반환하지 않는 경우 null 값을 반환하거나 VoidRddCallback 기본 클래스를 사용할 수 있습니다.
Spark RDD 정의
@Bean
RddCallback<Void> rddCallback() {
return new VoidRddCallback() {
@Override
public void doOnRdd(JavaRDDLike rdd, Object... payloads) {
rdd.saveAsTextFile(output.getAbsolutePath());
}
};
}