/* * Copyright 2014, Stratio. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.stratio.deep.core.fs.utils; import java.util.List; import org.apache.spark.api.java.function.Function; import com.stratio.deep.commons.entity.Cell; import com.stratio.deep.commons.entity.Cells; import com.stratio.deep.commons.utils.Utils; public class MapSchemaFromLines implements Function<String, Cells> { /** * Columns */ private final List<SchemaMap<?>> columns; /** * Separator in the FS File */ private String separator; /** * TableName of the FS File */ private String tableName; /** * Catalog of the FS File */ private String catalogName; public MapSchemaFromLines(TextFileDataTable textFileDataTable) { this.tableName = textFileDataTable.getTableName().getTableName(); this.catalogName = textFileDataTable.getTableName().getCatalogName(); this.columns = textFileDataTable.getColumnMap(); this.separator = textFileDataTable.getLineSeparator(); } @Override public Cells call(String s) throws Exception { Cells cellsOut = new Cells(catalogName + "." + tableName); String[] splits = s.split(separator); int i = 0; for (SchemaMap schemaMap : columns) { Cell cell = Cell.create(schemaMap.getFieldName(), Utils.castingUtil(splits[i], schemaMap.getFieldType())); cellsOut.add(cell); i++; } return cellsOut; } }