All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qiniu.pipeline.sdk.plugin.JavaParser Maven / Gradle / Ivy

The newest version!
package com.qiniu.pipeline.sdk.plugin;

import org.apache.spark.sql.Row;
import org.apache.spark.sql.types.StructType;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Java编写Plugin时, 需要继承JavaParser类
 */
public abstract class JavaParser extends Parser {
  /**
   * @param order         系统内部使用字段
   * @param pluginFields  transform spec对应plugin中output所有字段
   * @param schema        用户打点/输入数据的schema
   * @param configuration 系统内部使用字段
   */
  public JavaParser(Integer order, List pluginFields, StructType schema, Map configuration) {
    super(order, pluginFields, schema, configuration);
  }

  /**
   * 构造方法,Java编写Plugin时, 需要继承JavaParser类
   *
   * @param pluginFields transform spec对应plugin中output所有字段
   * @param schema       用户打点/输入数据的schema
   */
  public JavaParser(List pluginFields, StructType schema) {
    this(1, pluginFields, schema, new HashMap());
  }


  /**
   * 获取用户在plugin中输入的所有字段
   *
   * @return 返回类型为String的List, 即用户在transform spec对应plugin中output所有字段
   */
  @Override
  public final List getPluginFields() {
    return super.getPluginFields();
  }

  /**
   * 获取用户打点/输入数据的schema
   *
   * @return 返回StructType, 即用户打点/输入数据的schema
   */
  @Override
  public final StructType getSchema() {
    return super.getSchema();
  }

  /**
   * @param originData 用户每行打点/输入数据
   * @return 返回类型为Row的List, 即plugin支持单行到多行的转换, 且List中每行数据row必须由pluginFields中所有字段对应的字段值共同组成
   */
  abstract public List parse(Row originData);
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy