Spark에서는 다양한 방법을 사용하여 각 행에 대해 특정 값을 갖는 DataFrame에 상수 열을 추가할 수 있습니다.
Spark 버전 1.3 이상에서는 lit 함수를 사용하여 상수 열을 추가하기 위해 DataFrame.withColumn의 두 번째 인수로 사용할 수 있는 리터럴 값을 생성합니다.
from pyspark.sql.functions import lit df.withColumn('new_column', lit(10))
더 복잡한 열의 경우 배열, map 및 struct를 사용하여 원하는 열 값을 작성할 수 있습니다.
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 및 Tuples를 상수로 제공하는 것을 지원하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!