우리는 문자열 열 col1
과 배열 열 col2
을 가진 DataFrame이 있다고 가정합니다. 나는 스파크 작업의 배후에 어떤 일이 벌어지는 지 알아 궁금 :스파크 선택 - 폭발 관용구는 어떻게 구현 되었습니까?
df.select('col1', explode('col2'))
select 입력으로 Column
객체의 순서를 받아, explode가 Column
그래서 유형의 일치를 반환 것으로 보인다. 그러나 explode('col2')
에 의해 반환 된 열은 논리적으로 col1
과 다른 길이이므로 출력 DataFrame을 구성 할 때 선택이 어떻게 "동기화"되는지 어떻게 알고 있는지 궁금합니다. 단서를 찾기 위해 Column 클래스를 보았지만 실제로 아무것도 찾을 수 없었습니다.
고마워요! 내 질문은 기술적으로 데이터 프레임에 관한 것이었지만, 나는 그것이 거의 같다고 추측하고있다. 여기에 [이 예제가 있습니다.] (https://github.com/apache/spark/blob/v2.0.0-rc1/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala# L1587-L1604)를 Dataset.scala 소스에서 가져옵니다. – hillel
'DataFrame'은'Dataset [Row]'입니다. – zero323