Dataframe.explode
이 유용한 방법이라고 제안했지만, 원래 데이터 프레임보다 많은 행이 생성된다는 것을 여러 사람들이 보았습니다.Split Spark 데이터 프레임 문자열 열을 여러 열로 나누십시오.
rdd.map(lambda row: row + [row.my_str_col.split('-')])
처럼 보이는 무언가를 취합니다 :
col1 | my_str_col
-----+-----------
18 | 856-yygrm
201 | 777-psgdg
이로 변환 :
col1 | my_str_col | _col3 | _col4
-----+------------+-------+------
18 | 856-yygrm | 856 | yygrm
201 | 777-psgdg | 777 | psgdg
내가 알고 있는데 나는 단순히 매우 간단의 Dataframe에 해당하고 싶어 pyspark.sql.functions.split()
,하지만 원하는 두 개의 최상위 열 대신 중첩 된 배열 열을 결과.
이상적으로이 새로운 열의 이름도 지정하는 것이 좋습니다.
일반적인 고르지 않은 경우에 대한 해결책을 찾았습니까? –
불행히도 나는 결코하지 않았다. –
파이썬 루프를 사용하여 끝났다 - 범위 (최대 (len_of_split) : df = df.withcolumn (split.getItem (i)) –