Strangely, if I cast the variable input, already a StructuredRecord, to (co.cask.cdap.api.data.format.StructuredRecord) input then it works.
I don't import co.cask.cdap.api.data.format.StructuredRecord because then IntelliJ says the import is unused. I tried importing it and it didn't make any difference.
Here is the complete code to my transform plugin. Without the cast the compiler will complain about not finding the get() method:
import co.cask.cdap.api.annotation.Description;
import
co.cask.cdap.api.annotation.Name;
import co.cask.cdap.api.annotation.Plugin;
import co.cask.cdap.api.plugin.PluginConfig;
import co.cask.cdap.etl.api.Emitter;
import co.cask.cdap.etl.api.Transform;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* try3
*/
@Plugin(type = "transform")
@Name("try3")
@Description("This is a demonstration TCA transform")
public class try3Transform<StructuredRecord> extends Transform<StructuredRecord, StructuredRecord> {
private static final Logger logger = LoggerFactory.getLogger(try3Transform.class);
private final Config config;
public try3Transform(Config config) {
this.config = null;
}
@Override