Spark では、さまざまな方法を使用して、各行に特定の値を持つ定数列を DataFrame に追加できます。
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)))
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 を使用して列を追加することができます:
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 サイトの他の関連記事を参照してください。