【问题标题】:How to display grouped data in Scala Dataframe如何在 Scala Dataframe 中显示分组数据
【发布时间】:2020-01-19 17:34:18
【问题描述】:

我是 Scala 的初学者,我有一个看起来像这样(缩写)的数据框:

root
 |-- contigName: string (nullable = true)
 |-- start: long (nullable = true)
 |-- end: long (nullable = true)
 |-- names: array (nullable = true)
 |    |-- element: string (containsNull = true)
 |-- referenceAllele: string (nullable = true)
 |-- alternateAlleles: array (nullable = true)
 |    |-- element: string (containsNull = true)

我正在尝试简单地groupBy 名称列:

display(dataframe.groupBy("names"))

很简单的操作,但是

notebook:1: error: overloaded method value display with alternatives:
  [A](data: Seq[A])(implicit evidence$1: reflect.runtime.universe.TypeTag[A])Unit <and>
  (dataset: org.apache.spark.sql.Dataset[_],streamName: String,trigger: org.apache.spark.sql.streaming.Trigger,checkpointLocation: String)Unit <and>
  (model: org.apache.spark.ml.classification.DecisionTreeClassificationModel)Unit <and>
  (model: org.apache.spark.ml.regression.DecisionTreeRegressionModel)Unit <and>
  (model: org.apache.spark.ml.clustering.KMeansModel)Unit <and>
  (model: org.apache.spark.mllib.clustering.KMeansModel)Unit <and>
  (documentable: com.databricks.dbutils_v1.WithHelpMethods)Unit
 cannot be applied to (org.apache.spark.sql.RelationalGroupedDataset)
display(dataframe.groupBy("names"))

如何显示这些分组数据?

我看到的一些解决方案已经很复杂了,我不认为这是重复的,我想要的非常简单。

【问题讨论】:

  • 首先,您不能对array 列进行分组,其次您需要添加聚合以从RelationalGroupedDataset 创建DataFrame
  • @RaphaelRoth 你能举个例子吗?

标签: scala dataframe apache-spark databricks


【解决方案1】:

groupBy 返回RelationalGroupedDataset。您需要添加任何聚合函数(例如count()dataframe.groupBy("names").count()dataframe.groupBy("names").agg(max("end"))

如果需要按每个名字分组,可以在groupBy之前展开“names”数组

dataframe
    .withColumn("name", explode(col("names"))) 
    .drop("names")
    .groupBy("name")
    .count()    // or other aggregate functions inside agg()

【讨论】:

    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2012-11-29
    • 2018-10-18
    相关资源
    最近更新 更多