如何在apache spark中同时使用dataset.select和selectExpr

Sar*_*ose 4 apache-spark apache-spark-dataset

我想使用Spark(2.2)数据集提供下面提到的数据

Name    Age Age+5

A       10  15

B       5   10

C       25  30
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下内容:

dataset.select( 
        dataset.col("Name"), 
        dataset.col("Age),
        dataset.col( dataset.selectExpr("Age"+5).toString() )
       );
Run Code Online (Sandbox Code Playgroud)

这会抛出异常,因为Age找不到列.

phi*_*ert 7

selectExpr 有定义:

public Dataset<Row> selectExpr(String... exprs)
Run Code Online (Sandbox Code Playgroud)

它需要varargs String作为参数.所以,你可以使用:

dataset.selectExpr( "Name", "Age", "Age+5" )
Run Code Online (Sandbox Code Playgroud)