カウントで並べ替えて、一意のアイテムの値を保持する方法

NSR

次の形式の2列のデータフレームがあります

col1    col2

k1      'a'
k2      'b'
k1      'a'
k1      'c'
k2      'c'
k1      'b' 
k1      'b'
k2      'c'
k1      'b'

出力を

k1    ['b', 'a', 'c']
k2    ['c', 'b']

したがって、各エントリが発生した回数でソートされた一意のエントリのセット(降順)。上記の例では、「b」はk1に3回、「a」は2回、「c」は1回関連付けられています。

どうすればこれを行うことができますか?

groupBy($"col1").count()

エントリがcol1発生する回数だけを調べますが、それは私が探しているものではありません。

Grisha Weintraub

次のことができます。

  1. キーと列の値ごとに、カウントを計算します
  2. キーごとに、関連するすべての列値とその数を含むリストを計算します
  3. udfを使用してリストを並べ替え、カウントを削除します

そのように(Scalaで):

import scala.collection.mutable
import org.apache.spark.sql.{Row}

val sort_by_count_udf = udf {
  arr: mutable.WrappedArray[Row] =>
    arr.map {
      case Row(count: Long, col2: String) => (count, col2)
    }.sortBy(-_._1).map { case (count, col2) => col2 }
}

val df = List(("k1", "a"), 
  ("k1", "a"), ("k1", "c"), ("k1", "b"), 
  ("k2", "b"), ("k2", "c"), ("k2", "c"), 
  ("k1", "b"), ("k1", "b"))
  .toDF("col1", "col2")

val grouped = df
  .groupBy("col1", "col2")
  .count()
  .groupBy("col1")
  .agg(collect_list(struct("count", "col2")).as("list"))

grouped.withColumn("list_ordered", sort_by_count_udf(col("list"))).show

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

配列の一意の値を並べ替えてカウントする

分類Dev

ファイルから一意の名前を並べ替えてカウントするPython

分類Dev

一意の値で配列を並べ替える方法

分類Dev

並べ替えなしでリストに一意の値を返す方法

分類Dev

パンダの一意の値に従って列を並べ替える方法はありますか?

分類Dev

MatlabIVを並べ替えて一意のH値にマッピングする方法

分類Dev

一意の値で列を並べ替える

分類Dev

ハッシュを一意の値で並べ替える

分類Dev

2列の一意のペアをカウントし、GoogleスプレッドシートのArrayFormulaを使用してカウントを使用して並べ替える方法は?

分類Dev

Mysql:並べ替えですべてのアイテムを一覧表示する方法は?

分類Dev

並べ替え方法で単一のアイテムをスキップする

分類Dev

一意の値のみを表示する D3 でリストを並べ替える

分類Dev

配列を並べ替えて、複数の条件で一意にする-Ruby

分類Dev

Elasticsearch、フィールドのすべての一意の値と合計の一意の値のカウントを取得する方法は?

分類Dev

Elasticsearch、フィールドのすべての一意の値と合計の一意の値のカウントを取得する方法は?

分類Dev

Pandasデータフレームを並べ替えて、一意のエントリを保存します

分類Dev

一意のキーを保持しながら、辞書データを値で並べ替える

分類Dev

Perlでテキストファイルを並べ替えて一意にする

分類Dev

Python-カウントを追加して、リスト内の一意でないアイテムを一意にします

分類Dev

Pythonパンダ:すべての列で一意の値の頻度をカウントする

分類Dev

特定の列を持つファイルを並べ替えて一意にし、指定されたファイルの最初の値のみを保持します

分類Dev

Javascriptで最後を保持することにより、一意のIDで配列を並べ替えます

分類Dev

配列の並べ替え、一意でないすべての値のネスト

分類Dev

列の一意の値を見つけて並べ替える

分類Dev

Unix-一意のIPアドレスをカウントし、最も頻繁に並べ替え、繰り返し回数が同じ場合はIPで並べ替えます

分類Dev

多次元配列を値の一意の配列キーで並べ替える

分類Dev

パンダの特定の列の一意の値を並べ替える方法は?

分類Dev

リスト内のすべての一意の値+それらの合計数量とアイテムあたりの合計価格コスト(コストは時間とともに変化する場合)をカウントします

分類Dev

一意の値に基づいて2列のデータフレームを並べ替えます

Related 関連記事

  1. 1

    配列の一意の値を並べ替えてカウントする

  2. 2

    ファイルから一意の名前を並べ替えてカウントするPython

  3. 3

    一意の値で配列を並べ替える方法

  4. 4

    並べ替えなしでリストに一意の値を返す方法

  5. 5

    パンダの一意の値に従って列を並べ替える方法はありますか?

  6. 6

    MatlabIVを並べ替えて一意のH値にマッピングする方法

  7. 7

    一意の値で列を並べ替える

  8. 8

    ハッシュを一意の値で並べ替える

  9. 9

    2列の一意のペアをカウントし、GoogleスプレッドシートのArrayFormulaを使用してカウントを使用して並べ替える方法は?

  10. 10

    Mysql:並べ替えですべてのアイテムを一覧表示する方法は?

  11. 11

    並べ替え方法で単一のアイテムをスキップする

  12. 12

    一意の値のみを表示する D3 でリストを並べ替える

  13. 13

    配列を並べ替えて、複数の条件で一意にする-Ruby

  14. 14

    Elasticsearch、フィールドのすべての一意の値と合計の一意の値のカウントを取得する方法は?

  15. 15

    Elasticsearch、フィールドのすべての一意の値と合計の一意の値のカウントを取得する方法は?

  16. 16

    Pandasデータフレームを並べ替えて、一意のエントリを保存します

  17. 17

    一意のキーを保持しながら、辞書データを値で並べ替える

  18. 18

    Perlでテキストファイルを並べ替えて一意にする

  19. 19

    Python-カウントを追加して、リスト内の一意でないアイテムを一意にします

  20. 20

    Pythonパンダ:すべての列で一意の値の頻度をカウントする

  21. 21

    特定の列を持つファイルを並べ替えて一意にし、指定されたファイルの最初の値のみを保持します

  22. 22

    Javascriptで最後を保持することにより、一意のIDで配列を並べ替えます

  23. 23

    配列の並べ替え、一意でないすべての値のネスト

  24. 24

    列の一意の値を見つけて並べ替える

  25. 25

    Unix-一意のIPアドレスをカウントし、最も頻繁に並べ替え、繰り返し回数が同じ場合はIPで並べ替えます

  26. 26

    多次元配列を値の一意の配列キーで並べ替える

  27. 27

    パンダの特定の列の一意の値を並べ替える方法は?

  28. 28

    リスト内のすべての一意の値+それらの合計数量とアイテムあたりの合計価格コスト(コストは時間とともに変化する場合)をカウントします

  29. 29

    一意の値に基づいて2列のデータフレームを並べ替えます

ホットタグ

アーカイブ