ホームページ  >  記事  >  バックエンド開発  >  Spark DataFrames に定数列を追加するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-06 22:55:02391ブラウズ

How to Add Constant Columns in Spark DataFrames?

Spark DataFrame への定数列の追加

Spark では、さまざまな方法を使用して、各行に特定の値を持つ定数列を DataFrame に追加できます。

lit およびその他の関数 (Spark 1.3 )

Spark バージョン 1.3 以降では、lit 関数を使用してリテラル値が作成され、これを DataFrame.withColumn の 2 番目の引数として使用して追加できます。定数列:

from pyspark.sql.functions import lit

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

より複雑な列の場合、配列、マップ、構造体のような関数を使用して目的の列値を構築できます:

from pyspark.sql.functions import array, map, struct

df.withColumn("some_array", array(lit(1), lit(2), lit(3)))
df.withColumn("some_map", map(lit("key1"), lit(1), lit("key2"), lit(2)))

typedLit (Spark 2.2)

Spark 2.2 では、Seq、Map、および Tuple を定数として提供することをサポートする typedLit 関数が導入されました。

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

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

UDF の使用

リテラル値を使用する代わりに、各行の定数値を返すユーザー定義関数 (UDF) を作成し、その UDF を使用して列を追加することができます:

from pyspark.sql.functions import udf, lit

def add_ten(row):
    return 10

add_ten_udf = udf(add_ten, IntegerType())
df.withColumn('new_column', add_ten_udf(lit(1.0)))

注:

定数値は、同じ構造を使用して UDF または SQL 関数に引数として渡すこともできます。

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

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