Sha256: e1e6eb307aaf0b6d0bc1b035936412ca06f051403735ecdbfb01c3393c27b4cc
Contents?: true
Size: 1.59 KB
Versions: 59
Compression:
Stored size: 1.59 KB
Contents
package org.embulk.standards; import org.embulk.config.Config; import org.embulk.config.ConfigDefault; import org.embulk.config.ConfigSource; import org.embulk.config.Task; import org.embulk.config.TaskSource; import org.embulk.spi.Column; import org.embulk.spi.FilterPlugin; import org.embulk.spi.PageOutput; import org.embulk.spi.Schema; import java.util.Map; public class RenameFilterPlugin implements FilterPlugin { public interface PluginTask extends Task { @Config("columns") @ConfigDefault("{}") Map<String, String> getRenameMap(); } @Override public void transaction(ConfigSource config, Schema inputSchema, FilterPlugin.Control control) { PluginTask task = config.loadConfig(PluginTask.class); Map<String, String> renameMap = task.getRenameMap(); // check column_options is valid or not for (String columnName : renameMap.keySet()) { inputSchema.lookupColumn(columnName); // throws SchemaConfigException } Schema.Builder builder = Schema.builder(); for (Column column : inputSchema.getColumns()) { String name = column.getName(); if (renameMap.containsKey(name)) { name = renameMap.get(name); } builder.add(name, column.getType()); } control.run(task.dump(), builder.build()); } @Override public PageOutput open(TaskSource taskSource, Schema inputSchema, Schema outputSchema, PageOutput output) { return output; } }
Version data entries
59 entries across 59 versions & 1 rubygems