Spark DataFrames에 상수 열 추가
Spark DataFrames로 작업할 때 상수 열을 추가해야 하는 시나리오가 있습니다. 각 행에 고정 값. 그러나 흔히 저지르는 실수는 계산 열을 추가하기 위해 withColumn을 직접 사용하는 것입니다.
Error with withColumn
다음을 사용하여 직접 상수 열을 추가하려고 하면 withColumn을 사용하면 다음과 유사한 오류가 발생합니다.
AttributeError: 'int' object has no attribute 'alias'
이는 withColumn이 계산된 표현식을 나타내는 두 번째 인수로 Column 개체를 기대하기 때문입니다. 정수와 같은 상수 값은 열이 아닙니다.
해결 방법
상수 열을 올바르게 추가하려면 lit 함수를 사용하여 리터럴 값을 생성하세요. 이 함수는 상수 값을 인수로 사용하고 Column 객체를 반환합니다.
from pyspark.sql.functions import lit
df.withColumn('new_column', lit(10))
Complex Columns
배열과 같은 더 복잡한 상수 값의 경우 또는 구조체의 경우 다음 함수를 사용할 수 있습니다:
예:
from pyspark.sql.functions import array, struct, create_map df.withColumn("some_array", array(lit(1), lit(2), lit(3))) df.withColumn("some_struct", struct(lit("foo"), lit(1), lit(.3))) df.withColumn("some_map", create_map(lit("key1"), lit(1), lit("key2"), lit(2)))
대체 접근 방식
Spark 버전 2.2 이상에서는 typedLit 함수를 사용하여 시퀀스와 같은 지원되는 데이터 유형에 대한 상수 열을 생성할 수도 있습니다.
또 다른 대안은 위에서 언급한 내장 함수를 사용하는 것보다 느리지만 UDF를 사용하는 것입니다.
위 내용은 Spark DataFrames에 상수 열을 어떻게 추가하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!