1

스파크 데이터 프레임의 각 행에 대한 조건을 확인하고 조건이 참이면 열을 추가하려면 pyspark에서 사용자 지정 함수를 사용하고 있습니다.스파크 데이터 프레임에서 행 값이 null인지 확인하십시오.

코드는 다음과 같습니다 :

from pyspark.sql.types import * 
from pyspark.sql.functions import * 
from pyspark.sql import Row 

def customFunction(row): 
    if (row.prod.isNull()): 
     prod_1 = "new prod" 
     return (row + Row(prod_1)) 
    else: 
     prod_1 = row.prod 
     return (row + Row(prod_1)) 

sdf = sdf_temp.map(customFunction) 
sdf.show() 

나는 아래의 오류에 대한 언급을 얻을 :

AttributeError : '유니 코드'개체가 어떤 속성이없는 'isNull에'

내가 확인할 수있는 방법 내 사용자 정의 함수의 현재 행에있는 특정 열에 대한 null 값?

+1

'데이터 프레임'을 표시하거나 적어도 스키마를 인쇄 할 수 있습니까? Dataframe의 –

+0

스키마는 다음과 같습니다 루트 | - ID : 문자열 (= null 허용 TRUE) | - 코드 : 문자열 (= null 허용 TRUE) | - prod_code : 문자열 (= null 허용 TRUE) | - 자극 : 문자열 (nullable = true) – sam

답변

4

sdfDataFrame 인 것을 고려하면 select 문을 사용할 수 있습니다.

sdf.select("*", when(col("pro").isNull(), lit("new pro")).otherwise(col("pro"))) 
+0

그러나 데이터 프레임의 여러 열에서 여러 작업을 수행해야하므로 사용자 지정 함수를 사용하려고합니다. 왜 사용자 정의 함수에서 null을 확인할 수 있습니까? – sam

+1

질문을 수정하고 요구 사항을 추가해야합니다. –