Apache spark 数据帧的动态Spark数据集别名列

Apache spark 数据帧的动态Spark数据集别名列,apache-spark,apache-spark-dataset,Apache Spark,Apache Spark Dataset,这可能是一个非常愚蠢的问题,但对于: val ds3 = ds.groupBy($"ip") .avg("humidity") 对于数据集(而不是dataframe),我不清楚如何像动态使用alias那样重命名列。我试了几件事,但都没用。尝试时没有错误,但没有效果 我想要平均湿度作为颜色名称 延伸问题,如果我发布: val ds3 = ds.groupBy($"ip") .avg() 如何处理此问题?avg不提供别名函数,您可能需要额外的别

这可能是一个非常愚蠢的问题,但对于:

val ds3 = ds.groupBy($"ip")
            .avg("humidity") 
对于数据集(而不是dataframe),我不清楚如何像动态使用alias那样重命名列。我试了几件事,但都没用。尝试时没有错误,但没有效果

我想要平均湿度作为颜色名称

延伸问题,如果我发布:

val ds3 = ds.groupBy($"ip")
            .avg() 
如何处理此问题?

avg不提供别名函数,您可能需要额外的别名函数

相反,您可以使用.aggavghumidity.asavg\u湿度

返回RelationalGroupedDataset

avgcolNames:String*的返回类型是一个数据帧,因此通过使用asalias:String,您只需将别名分配给一个新的数据帧,而不是一个列


因此,关于在数据帧中重命名列的讨论非常困难。

没错,真是一团糟。所以你能看一下我对问题的编辑,在接受之前就对她的答案发表评论吗?您的意思是如果您执行ds.groupBy$ip.avg@BluePhantom或者你的意思是和异常?当使用这些函数时,我注意到我们再次得到了数据帧-我很久以前就看到了,事实上,这似乎没有改变。令人失望。哦,现在我得到了它@蓝色幻影我正在学习认证,我想我会检查DF vs DS。我发现DS仍然存在很多问题。只是选择和这样的工作排序,但AGGR意味着一个DF得到,是的,我知道可互换,但大量的工作要做。无论如何,我可以改变所有的科尔自己,因为我看到有限制顶级决策支持,你确认。晚点再看。证实了我的观点,DFs更容易。所以,我回到了亿万年前的状态。我从RGD获得了什么优势?到目前为止,我更喜欢DF。RGD对我有什么好处不知道你的意思。它是一个定义组类型和操作的类。哦,好吧,我们似乎时常看到i2i。在这方面,我认为DFs在实践中要方便得多。干杯,我给你投票了。很酷,谢谢。我不一定不同意……:只是说DS中的列名具有完全不同的含义——它们是静态类型对象的属性,而不是DF行中的列标题。
val ds3 = ds.groupBy($"ip")
  .avg("humidity")
  .withColumnRenamed("avg(humidity)","avg_humidity")
val ds3 = ds.groupBy($"ip").agg(avg("humidity").as("avg_humidity"))