나는 비슷한 질문을 보았지만 필요한 것을 정확히 찾을 수 없었고 UDF를 사용하지 않고 내가 원하는 것을 할 수 있는지 파악하기 위해 고군분투했습니다.
이 데이터 프레임으로 시작한다고 가정 해 보겠습니다.
+---+---+---+
| pk| a| b|
+---+---+---+
| 1| 2| 1|
| 2| 4| 2|
+---+---+---+
결과 데이터 프레임이 다음과 같기를 원합니다.
+----------------+---+
| ab| pk|
+----------------+---+
|[A -> 2, B -> 1]| 1|
|[A -> 4, B -> 2]| 2|
+----------------+---+
어디에 A
와 B
있는 이름이 대응 a
하고 b
(내가 별칭으로이 문제를 해결할 수 있습니다 생각하지만, 현재 지금은 UDF를 사용하고 그 수익률의지도 {'A': column a value, 'B': column b value}
)
create_map을 사용하거나 UDF없이이를 수행하는 방법이 있습니까?
create_map
key, value, key, value ...
귀하의 경우 인수를 으로 사용합니다.
import pyspark.sql.functions as f
df.select(
f.create_map(f.lit('A'), f.col('a'), f.lit('B'), f.col('b')).alias('ab'),
f.col('pk')
).show()
+----------------+---+
| ab| pk|
+----------------+---+
|[A -> 2, B -> 1]| 1|
|[A -> 4, B -> 2]| 2|
+----------------+---+
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다