动态WindowSpec

时间:2019-05-06 22:13:28

标签: apache-spark apache-spark-sql apache-spark-dataset

我正在尝试用Java来动态/以编程方式(就是这个词?)构建WindowSpec,以便为分区和order by子句传递参数。我已经部分工作了。我可以为每个子句传递一个简单的逗号分隔的字符串,并构建窗口规范。我唯一不知道的是,如果我不想升序,如何按方向指定顺序。

例如,假设我有一个sortKeys的简单字符串,如table1.a, table1.b。我可以这样构建我的表情:

List<String> sorts = Arrays.asList(sortKeys.split(","));
Column[] sortCols = new Column[sorts.size()];

for (int i = 0; i < sorts.size(); i++) {
    sortCols[i] = new Column(sorts.get(i).trim() );
}

然后我可以将其传递给我的WindowSpec:

WindowSpec w = org.apache.spark.sql.expressions.Window.partitionBy(partCols).orderBy(sortCols);

一切正常。但是,如何为每列指定顺序的方向呢?

0 个答案:

没有答案