0
PySpark에서는 기존 팬더 또는 R 스타일 표기법을 사용하여 DataFrame의 이전 열을 기반으로 새 열을 만들 수 없습니다. PySpark하지 않는 이유가 거기에PySpark DataFrames에서 __setitem__이 (가) 완전히 구현되지 않은 이유는 무엇입니까?
TypeError: 'DataFrame' object does not support item assignment
대신,이 작업을 수행 할 수있는 구현 방법은
df = df.withColumn('newcol', F.concat(df['col_1'], df['col_2']))
입니다 :
이import pyspark.sql.functions as F
df['newcol'] = F.concat(df['col_1'], df['col_2'])
결과는 예를 들어, 나는 두 개의 열을 연결하려고 말 전통적인 DataFrame 표기법을 구현합니까?
나는 알고 있다고 생각합니다. 즉, 기존의 데이터 프레임은 변경 가능한 객체 (벡터 목록) 인 반면 Spark DataFrames는 불변입니다. Spark은 함수 프로그래밍 모델에서 설계 되었기 때문입니다. '__setitem__'은 변이 (mutation)이며 불변 개체에는 적용 할 수 없습니다. – Paul
예, 정확히 ... 당신은 그것을 원숭이 패치로 직접 구현할 수 있습니다. 그러나 그것은 비린내가납니다. – zero323