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 サイトの他の関連記事を参照してください。