UDF에서 for 루프를 사용하여 열 하나씩 목록을 보내려고하지만 오류가 발생했습니다. 즉 데이터 프레임에서 col_name을 찾을 수 없습니다. 현재 목록에 list_col 우리는 두 개의 열이 있지만 그것은 변경 될 수 있습니다. 그래서 난 열의 모든 목록에 대해 작동하는 코드를 작성하고 싶습니다.이 코드에서 한 번에 열의 한 행을 연결하고 행 값은 구조체 형식 즉 목록 안에 나열하십시오. 모든 null에 대해 나는 공간을 주어야한다.Pyspark : UDF에서 동적 열 전달
list_col=['pcxreport','crosslinediscount']
def struct_generater12(row):
list3 = []
main_str = ''
if(row is None):
list3.append(' ')
else:
for i in row:
temp = ''
if(i is None):
temp+= ' '
else:
for j in i:
if (j is None):
temp+= ' '
else:
temp+= str(j)
list3.append(temp)
for k in list3:
main_str +=k
return main_str
A = udf(struct_generater12,returnType=StringType())
# z = addlinterestdetail_FDF1.withColumn("Concated_pcxreport",A(addlinterestdetail_FDF1.pcxreport))
for i in range(0,len(list_col)-1):
struct_col='Concate_'
struct_col+=list_col[i]
col_name=list_col[i]
z = addlinterestdetail_FDF1.withColumn(struct_col,A(addlinterestdetail_FDF1.col_name))
struct_col=''
z.show()
감사합니다. 저에게 도움이되었습니다. –
@RahulKumarSingh [Accepting the 답변] (https://stackoverflow.com/help/someone-answers). – Prem
목록에 내가 하나의 데이터 프레임에있는 모든 데이터 프레임을 병합해야 얼마나 많은 데이터 프레임이 있습니다. 목록의 길이가 고정되어 있지 않습니다 ................... 감사합니다 사전입니다 –