我有一个String变量,其中包含几个用逗号分隔的列名。例如:
val temp =“Col2,Col3,Col4”
我有一个Dataframe,我想根据某些列对Dataframe进行分组,这些列也包含存储在temp变量中的列。例如,我的groupBy语句应该像下面的语句
DF.groupBy(“Col1”,“Col2”,“Col3”,“Col4”)
temp变量可以包含任何列名。所以我想创建一个GroupBy语句,它可以动态获取临时变量的值以及我提供的手动条目。
我尝试了以下声明,但无济于事 DF.groupBy(“Col1”,temp)
然后我根据逗号分离了临时变量的值,并将它们存储在另一个变量中,并尝试将其传递给groupBy语句。但即使这样也失败了。
val temp1 = temp.split(“,”)
DF.groupBy(“Col1”,temp1)
我是如何将List变量的值括在双引号中并将其传递给groupBy语句的?
答案 0 :(得分:1)
使用varargs:
14:59:26.600 INFO org.apache.coyote.http11.Http11Processor - Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:422)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:683)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
或
df.groupBy("Col1", temp1: _*)