データフレーム列に関数を適用すると、scalaがスパークします

マスタービルダー

かなり多数の列(150)を持つ大きなデータセットがあり、idフィールドを持つ最初の列を期待するすべての列に関数(UDF)を適用したいと思います。関数を動的に適用することができましたが、データフレームにファイルされたIDを持つ最終的なデータセットが必要になりました。Sparkジョブはクラスターモードで実行されます。私が試したのはheereです。

val df = sc.parallelize(
  Seq(("id1", "B", "c","d"), ("id2", "e", "d","k"),("id3", "e", "m","n"))).toDF("id", "dat1", "dat2","dat3")
df.show

+---+----+----+----+
| id|dat1|dat2|dat3|
+---+----+----+----+
|id1|   B|   c|   d|
|id2|   e|   d|   k|
|id3|   e|   m|   n|
+---+----+----+----+

df.select(df.columns.slice(1,df.columns.size).map(c => upper(col(c)).alias(c)): _*).show

----+----+----+
|dat1|dat2|dat3|
+----+----+----+
|   B|   C|   D|
|   E|   D|   K|
|   E|   M|   N|
+----+----+----+

期待される出力

-----+----+----+
id|dat1|dat2|dat3|
-+----+----+----+
|id1|   B|   C|   D|
|id2|   E|   D|   K|
|id3|   E|   M|   N|
-+----+----+----+
サイドム

id列を他の(変換された)列の前に置くだけです。

df.select(
    col("id") +: df.columns.tail.map(c => upper(col(c)).alias(c)): _*
).show
+---+----+----+----+
| id|dat1|dat2|dat3|
+---+----+----+----+
|id1|   B|   C|   D|
|id2|   E|   D|   K|
|id3|   E|   M|   N|
+---+----+----+----+

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

インデックスと列の値を入力として、パンダのデータフレームに要素ごとの関数を適用します

分類Dev

文字列として宣言された関数をパンダのデータフレームに適用する

分類Dev

関数データフレーム列を適用します

分類Dev

データフレーム列パンダに関数を適用する

分類Dev

パンダのデータフレーム列に関数を適用する

分類Dev

列ごとにPandasデータフレームに関数を適用する

分類Dev

列の数に関係なく、データフレームに行ごとに関数を適用します

分類Dev

列に基づくデータフレームとインデックスに基づく他のデータフレームに関数を適用する

分類Dev

Pythonデータフレームは、列ごとにグループごとに関数を適用します

分類Dev

pandasデータフレームの各列に関数を適用します

分類Dev

データフレーム列に関数を適用しますか?

分類Dev

列を参照しながらパンダデータフレームに関数を行ごとに適用します

分類Dev

スパークScalaは - どのようにグループのデータフレームの列へとグループへの複雑な関数を適用しますか?

分類Dev

パンダは複数の列のデータフレームに関数を適用します

分類Dev

パンダのデータフレームのすべての列に関数を適用します

分類Dev

数値のある列のパンダデータフレームに行ごとに関数を適用します

分類Dev

データフレームの列に関数を適用します(列はリストです)

分類Dev

データフレームの列に関数を適用します(列はリストです)

分類Dev

パンダデータフレームの単一列に関数を適用します

分類Dev

パンダデータフレームの列に関数を適用します

分類Dev

パンダのデータフレームは列全体に関数を適用します

分類Dev

ラムダ関数をパンダデータフレーム列に適切に適用する方法

分類Dev

ラムダ関数をパンダデータフレーム列に適切に適用する方法

分類Dev

ラムダ関数をパンダデータフレーム列に適切に適用する方法

分類Dev

ラムダ関数をパンダデータフレーム列に適切に適用する方法

分類Dev

データフレームのリストの列に関数を適用し、結果を追加します

分類Dev

クラス内の関数をパンダデータフレームに適用する方法

分類Dev

結果を元のデータフレームに保存しながら、データフレームの一部の列に関数を適用します

分類Dev

パンダ:列タイプを認識する関数をデータフレームのすべての列に適用します

Related 関連記事

  1. 1

    インデックスと列の値を入力として、パンダのデータフレームに要素ごとの関数を適用します

  2. 2

    文字列として宣言された関数をパンダのデータフレームに適用する

  3. 3

    関数データフレーム列を適用します

  4. 4

    データフレーム列パンダに関数を適用する

  5. 5

    パンダのデータフレーム列に関数を適用する

  6. 6

    列ごとにPandasデータフレームに関数を適用する

  7. 7

    列の数に関係なく、データフレームに行ごとに関数を適用します

  8. 8

    列に基づくデータフレームとインデックスに基づく他のデータフレームに関数を適用する

  9. 9

    Pythonデータフレームは、列ごとにグループごとに関数を適用します

  10. 10

    pandasデータフレームの各列に関数を適用します

  11. 11

    データフレーム列に関数を適用しますか?

  12. 12

    列を参照しながらパンダデータフレームに関数を行ごとに適用します

  13. 13

    スパークScalaは - どのようにグループのデータフレームの列へとグループへの複雑な関数を適用しますか?

  14. 14

    パンダは複数の列のデータフレームに関数を適用します

  15. 15

    パンダのデータフレームのすべての列に関数を適用します

  16. 16

    数値のある列のパンダデータフレームに行ごとに関数を適用します

  17. 17

    データフレームの列に関数を適用します(列はリストです)

  18. 18

    データフレームの列に関数を適用します(列はリストです)

  19. 19

    パンダデータフレームの単一列に関数を適用します

  20. 20

    パンダデータフレームの列に関数を適用します

  21. 21

    パンダのデータフレームは列全体に関数を適用します

  22. 22

    ラムダ関数をパンダデータフレーム列に適切に適用する方法

  23. 23

    ラムダ関数をパンダデータフレーム列に適切に適用する方法

  24. 24

    ラムダ関数をパンダデータフレーム列に適切に適用する方法

  25. 25

    ラムダ関数をパンダデータフレーム列に適切に適用する方法

  26. 26

    データフレームのリストの列に関数を適用し、結果を追加します

  27. 27

    クラス内の関数をパンダデータフレームに適用する方法

  28. 28

    結果を元のデータフレームに保存しながら、データフレームの一部の列に関数を適用します

  29. 29

    パンダ:列タイプを認識する関数をデータフレームのすべての列に適用します

ホットタグ

アーカイブ