>백엔드 개발 >파이썬 튜토리얼 >Spark DataFrames에 상수 열을 어떻게 추가하나요?

Spark DataFrames에 상수 열을 어떻게 추가하나요?

DDD
DDD원래의
2024-11-08 20:22:02465검색

How do I add constant columns to Spark DataFrames?

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

배열과 같은 더 복잡한 상수 값의 경우 또는 구조체의 경우 다음 함수를 사용할 수 있습니다:

  • array
  • struct
  • create_map

예:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.