Search in sources :

Example 1 with TransformResponseUtil

use of com.thinkbiganalytics.spark.rest.controller.TransformResponseUtil in project kylo by Teradata.

the class FileMetadataCompletionTask method run.

@Override
public void run() {
    List<String> exceptions = new ArrayList<>();
    // aggregrate
    if (this.tasks != null) {
        exceptions.addAll(this.tasks.stream().filter(task -> task.hasExecutionException()).map(task -> task.getExecutionException()).collect(Collectors.toList()));
    }
    try {
        for (Map.Entry<SparkShellScriptRunner, List<com.thinkbiganalytics.spark.rest.model.FileMetadataResponse.ParsedFileMetadata>> e : this.fileSchemaScriptRunnerMap.entrySet()) {
            SparkShellScriptRunner runner = e.getKey();
            TransformResponse response = runner.getFinalResponse();
            if (response != null) {
                TransformResponseUtil responseTransformer = new TransformResponseUtil(response);
                Map<String, FileMetadataSchema> schemaMap = response.getResults().getRows().stream().map(row -> {
                    String mimeType = (String) responseTransformer.getRowValue("mimeType", row);
                    String filePath = (String) responseTransformer.getRowValue("resource", row);
                    Map<String, String> schema = responseTransformer.getRowValue("schema", row, Map.class);
                    return new FileMetadataSchema(mimeType, filePath, schema);
                }).collect(Collectors.toMap(key -> key.getFilePath(), key -> key));
                e.getValue().stream().forEach(originalData -> {
                    FileMetadataSchema updatedSchema = schemaMap.get(originalData.getFilePath());
                    if (updatedSchema != null) {
                        String headers = ObjectMapperSerializer.serialize(updatedSchema.getSchema());
                        originalData.getProperties().put("headers", headers);
                        originalData.getProperties().put("headerCount", updatedSchema.getSchema().size() + "");
                    }
                });
            }
        }
    } catch (Exception e) {
        exceptions.add(e.getMessage());
    }
    if (!exceptions.isEmpty()) {
        String message = exceptions.stream().collect(Collectors.joining("\n"));
        this.modifiedTransformResponse.setMessage(message);
    }
    this.finalResult.complete(this.modifiedTransformResponse);
    this.complete = true;
}
Also used : FileMetadataResponse(com.thinkbiganalytics.spark.rest.model.FileMetadataResponse) ObjectMapperSerializer(com.thinkbiganalytics.json.ObjectMapperSerializer) TransformResponse(com.thinkbiganalytics.spark.rest.model.TransformResponse) List(java.util.List) TransformResponseUtil(com.thinkbiganalytics.spark.rest.controller.TransformResponseUtil) FileMetadataTransformResponseModifier(com.thinkbiganalytics.spark.rest.filemetadata.FileMetadataTransformResponseModifier) Map(java.util.Map) SparkShellScriptRunner(com.thinkbiganalytics.spark.rest.controller.SparkShellScriptRunner) ModifiedTransformResponse(com.thinkbiganalytics.spark.rest.model.ModifiedTransformResponse) HashMap(java.util.HashMap) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) SparkShellScriptRunner(com.thinkbiganalytics.spark.rest.controller.SparkShellScriptRunner) FileMetadataResponse(com.thinkbiganalytics.spark.rest.model.FileMetadataResponse) List(java.util.List) ArrayList(java.util.ArrayList) TransformResponse(com.thinkbiganalytics.spark.rest.model.TransformResponse) ModifiedTransformResponse(com.thinkbiganalytics.spark.rest.model.ModifiedTransformResponse) Map(java.util.Map) HashMap(java.util.HashMap) TransformResponseUtil(com.thinkbiganalytics.spark.rest.controller.TransformResponseUtil)

Aggregations

ObjectMapperSerializer (com.thinkbiganalytics.json.ObjectMapperSerializer)1 SparkShellScriptRunner (com.thinkbiganalytics.spark.rest.controller.SparkShellScriptRunner)1 TransformResponseUtil (com.thinkbiganalytics.spark.rest.controller.TransformResponseUtil)1 FileMetadataTransformResponseModifier (com.thinkbiganalytics.spark.rest.filemetadata.FileMetadataTransformResponseModifier)1 FileMetadataResponse (com.thinkbiganalytics.spark.rest.model.FileMetadataResponse)1 ModifiedTransformResponse (com.thinkbiganalytics.spark.rest.model.ModifiedTransformResponse)1 TransformResponse (com.thinkbiganalytics.spark.rest.model.TransformResponse)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1