pyspark df
とdata
に2つのデータフレームがあります。スキーマは 2つのデータフレームのカラム名を比較する
>>> 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私は火花1.6
を使用しています。新しく追加されたデータフレーム内のこれらの列の値はnullにする必要があります。
ここで例えばデータのデータフレームの列車やバンは、null値が含まれている必要がありますが、DFデータフレーム内の同じ列があった場合に何が起こるか、元の値
を持っている必要がありますので、我々は
data
データフレームに列を追加しますスキーマはありませんが、StructTypeがStructFieldsのリストからなるように、我々は不足している列を比較して検索するには、フィールドのリストを取得することができます
上記の回答では、違いとして2列しかありません。 2つ以上の列がある場合はどうなりますか。どのように動的に渡すことができますか – User12345
上記のコードは、2つのスキーマの違いを動的に取ります。どの列が相違点として存在しますか?すべてが考慮されます。 – Suresh
@Suresh初期データフレームがハイブテーブルから来たと仮定してテーブルを変更する方法を教えてください。データフレームに列を追加する代わりに、既存のハイブテーブルにヌル値を追加できますか? –