Для этого нельзя использовать встроенную функцию DSL DataFrame slice
(так как для этого требуются постоянные границы срезов), для этого можно использовать UDF. Если df
является вашим фреймом данных и у вас есть столбец from
und until
, то вы можете сделать:
val mySlice = udf(
(data:Seq[Row], from:Int, until:Int) => data.slice(from,until),
df.schema.fields.find(_.name=="x").get.dataType
)
df
.select(mySlice($"x",$"from",$"until"))
.show()
В качестве альтернативы, вы можете использовать выражение SQL в Spark SQL:
df
.select(expr("slice(x,from,until)"))
.show()