当前位置: 首页 > 知识库问答 >
问题:

如何将列表项括在阿帕奇火花中的双引号内

奚才良
2023-03-14

我有一个String变量,其中包含几个用逗号分隔的列名。例如:

val temp = "第二列,第三列,第四列"

我有一个Dataframe,我想根据某些列对Dataframe进行分组,其中包括存储在temp变量中的列。例如,我的groupBy语句应该像下面的语句

DF.groupBy(“Col1”、“Col2”、“Col3”、“Col4”)

temp变量可以有任何列名。因此,我想创建一个GroupBy语句,动态获取temp变量的值以及我提供的手动输入。

我试着用下面的语句,但没有用。groupBy(“Col1”,温度)

然后,我根据逗号符号拆分临时变量的值,并将它们存储在另一个变量中,并尝试将其传递给groupBy语句。但即便如此,也失败了。

val1=temp.split(",")

DF.groupBy(Col1)

你知道如何将列表变量的值用双引号括起来并传递给groupBy语句吗?

共有1个答案

索嘉石
2023-03-14

使用varargs:

df.groupBy("Col1", temp1: _*)

import org.apache.spark.sql.functions.col

df.groupBy("Col1 +: temp1 map col: _*)
 类似资料:
  • 我处理了像这样存储的双精度列表: 我想计算这个列表的平均值。根据文档,: MLlib的所有方法都使用Java友好类型,因此您可以像在Scala中一样导入和调用它们。唯一的警告是,这些方法采用Scala RDD对象,而Spark Java API使用单独的JavaRDD类。您可以通过对JavaRDD对象调用.RDD()将JavaRDD转换为Scala RDD。 在同一页面上,我看到以下代码: 根据我

  • 我在尝试将spark数据帧的一列从十六进制字符串转换为双精度字符串时遇到了一个问题。我有以下代码: 我无法共享txs数据帧的内容,但以下是元数据: 但当我运行这个程序时,我得到了一个错误: 错误:类型不匹配;找到:MsgRow需要:org.apache.spark.sql.行MsgRow(row.getLong(0),row.getString(1),row.getString(2),hex2in

  • 目前我正在研究Apache spark和Apache ignite框架。 这篇文章介绍了它们之间的一些原则差异,但我意识到我仍然不理解它们的目的。 我的意思是,哪一个问题更容易产生火花而不是点燃,反之亦然?

  • 我有以下Apache Spark数据帧(DF1): 首先,我想按对DataFrame进行分组,将结果收集到中并接收新的DataFrame(DF2): 之后,我需要收集到通过分组,我将收到如下所示的新DataFrame(DF3): 所以,我有一个问题 - 首先,我可以在阿帕奇火花中使用按数组类型列分组吗?如果是这样,我可能会在 单个字段中result_list数千万个值。在这种情况下,阿帕奇火花是否

  • 将现有应用程序从Spark 1.6移动到Spark 2.2*(最终)会导致错误“org.apache.spark.SparkExctive:任务不可序列化”。我过于简化了我的代码,以演示同样的错误。代码查询拼花文件以返回以下数据类型:“org.apache.spark.sql.数据集[org.apache.spark.sql.行]”我应用一个函数来提取字符串和整数,返回字符串。一个固有的问题与Sp