ホームページ >バックエンド開発 >Python チュートリアル >Spark DataFrame に定数列を追加するにはどうすればよいですか?

Spark DataFrame に定数列を追加するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 00:31:02512ブラウズ

How to Add a Constant Column to a Spark DataFrame?

Spark DataFrame での定数列の作成

すべての行に適用される任意の値を持つ定数列を Spark DataFrame に追加すると、次のことが可能になります。いくつかの方法で達成されます。この目的を目的とした withColumn メソッドは、2 番目の引数として直接値を指定しようとするとエラーが発生する可能性があります。

リテラル値の使用 (Spark 1.3 )

この問題を解決するには、lit を使用して目的の値のリテラル表現を作成します。

from pyspark.sql.functions import lit

df.withColumn('new_column', lit(10))

複雑な列の作成 (Spark 1.4 )

より複雑な列タイプの場合配列、構造体、マップなど、適切な関数を使用します。

from pyspark.sql.functions import array, struct

df.withColumn('array_column', array(lit(1), lit(2)))
df.withColumn('struct_column', struct(lit('foo'), lit(1)))

型付きリテラル (Spark 2.2 )

Spark 2.2 では typedLit が導入され、次のサポートが提供されます。 Seq、Map、およびタプル:

import org.apache.spark.sql.functions.typedLit

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))

ユーザー定義関数 (UDF) の使用

または、定数値を返す UDF を作成します:

from pyspark.sql import functions as F

def constant_column(value):
    def udf(df):
        return [value for _ in range(df.count())]
    return F.udf(udf)

df.withColumn('constant_column', constant_column(10))

注:

これらのメソッドは、UDF または SQL 関数に定数引数を渡すために使用することもできます。

以上がSpark DataFrame に定数列を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。