Java 类名:com.alibaba.alink.pipeline.sql.Select
Python 类名:Select

功能介绍

提供 SQL 的 SELECT 语句功能。

使用方式

该组件提供与 SelectBatch/StreamOp 相近的功能。
该组件既可以单独使用(直接调用 transform方法),也可以置于构建 Pipeline 中使用。 前一种场景的使用方式跟 SelectBatch/StreamOp 一致。
后一种场景时,有两点需要特别注意:

  1. 语句需要严格输入 1 行输出 1 行,即满足 map 的功能;
  2. 因为内部实现实际采用的是 Calcite 而非 Flink,因此可能不支持某些 Flink
    内置方法;经过测试可以使用的内置方法可以见测试代码

    参数说明

    | 名称 | 中文名称 | 描述 | 类型 | 是否必须? | 取值范围 | 默认值 | | —- | —- | —- | —- | —- | —- | —- | | clause | 运算语句 | 运算语句 | String | ✓ | | |

代码示例

Python 代码

  1. URL = "https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/iris.csv"
  2. SCHEMA_STR = "sepal_length double, sepal_width double, petal_length double, petal_width double, category string";
  3. data = CsvSourceBatchOp().setFilePath(URL).setSchemaStr(SCHEMA_STR)
  4. select = Select().setClause("category as label")
  5. select.transform(data).print()

Java 代码

  1. import com.alibaba.alink.operator.batch.BatchOperator;
  2. import com.alibaba.alink.operator.batch.source.CsvSourceBatchOp;
  3. import com.alibaba.alink.pipeline.sql.Select;
  4. import org.junit.Test;
  5. public class SelectTest {
  6. @Test
  7. public void testSelect() throws Exception {
  8. String URL = "https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/iris.csv";
  9. String SCHEMA_STR
  10. = "sepal_length double, sepal_width double, petal_length double, petal_width double, category string";
  11. BatchOperator <?> data = new CsvSourceBatchOp().setFilePath(URL).setSchemaStr(SCHEMA_STR);
  12. Select select = new Select().setClause("category as label");
  13. select.transform(data).print();
  14. }
  15. }

运行结果

| label | | —- |

| Iris-versicolor |

| Iris-setosa |

| Iris-setosa |

| Iris-setosa |

| Iris-virginica |

| … |

| Iris-setosa |

| Iris-versicolor |

| Iris-virginica |

| Iris-setosa |

| Iris-versicolor |