pyspark df
및 data
에 두 개의 데이터 프레임이 있습니다. 스키마는 같은 두 데이터 프레임의 열 이름 비교 pyspark
>>> df.printSchema()
root
|-- id: integer (nullable = false)
|-- name: string (nullable = true)
|-- address: string (nullable = true)
|-- nation: string (nullable = true)
|-- Date: timestamp (nullable = false)
|-- ZipCode: integer (nullable = true)
|-- car: string (nullable = true)
|-- van: string (nullable = true)
>>> data.printSchema()
root
|-- id: integer (nullable = true)
|-- name: string (nullable = true)
|-- address: string (nullable = true)
|-- nation: string (nullable = true)
|-- date: string (nullable = true)
|-- zipcode: integer (nullable = true)
가 지금은 스키마를 모두 비교하여 내
data
데이터 프레임에 열 자동차와 밴을 추가 할 수 아래.
열이 동일하면 두 데이터 프레임을 비교하고 싶지만 열이 다른 경우 열이없는 데이터 프레임에 열을 추가하십시오.
어떻게 우리가 pyspark에서이를 달성 할 수 있습니까? 열이 상기 데이터 프레임에 추가되면
는 FYI I 스파크 1.6를 사용하고있다. 새로 추가 된 데이터 프레임의 해당 열 값은 null이어야합니다.
여기 예를 들어 데이터 데이터 프레임의 열 자동차와 밴이 null 값을 포함해야하지만, DF 데이터 프레임에서 같은 열이 경우 발생하는 원래 값
을 가져야한다, 그래서 우리는
data
데이터 프레임에 열을 추가 스키마가 아니라 StructFields의 목록으로 구성된 StructType, 우리는 비교하고 누락 된 열을 찾기 위해, 필드 목록을 검색 할 수 있습니다으로 2 개 이상의 새로운 열이,
위의 대답에는 차이로 2 개의 열만 있습니다. 2 개 이상의 열이있는 경우는 어떻게됩니까? 어떻게 우리가 그들을 동적으로 전달할 수 있습니까? – User12345
위 코드는 두 스키마의 차이를 동적으로 취합니다. 몇 개의 칼럼이 차이점으로 존재 하는가? 모든 것이 고려됩니다. – Suresh
@Suresh 초기 데이터 프레임이 하이브 테이블에서 왔다고 가정합니다. 어떻게 테이블을 변경할 수 있습니까? 데이터 프레임에 열을 추가하는 대신 Null 값을 사용하여 기존 하이브 테이블에 추가 할 수 있습니까? –