LoginSignup
0
0

withcolumn(s)を使用してDataFrameには存在するがテーブルには存在しない列を追加する

Last updated at Posted at 2024-05-16

withcolumnを利用してDataFrameには存在するがテーブルには存在しない列を追加する場合はwrite.optionで("mergeSchema", "true")が必要。

from pyspark.sql.functions import *

# cloumn1~cloumn3を追加しそれぞれに固定値を入れる
df=spark.table(table)
df = df.withColumns({"cloumn1": current_timestamp(),"column2" : current_date(),"cloumn3":lit("0")})

# DFの内容をテーブルへ上書き
df.write.option("mergeSchema", "true").mode("overwrite").saveAsTable(table)

option指定しない場合は以下のようなエラーがでる
image.png

--240530追記
追加列の型指定の方法
追加する値の末尾に.cast("型")を入れる

from pyspark.sql.functions import *

# cloumn1~cloumn3を追加しそれぞれに固定値を入れる
df=spark.table(table)
df = df.withColumns({"cloumn1": current_timestamp().cast("timestamp"),"column2" : current_date(),"cloumn3":lit("0").cast("string")})

# DFの内容をテーブルへ上書き
df.write.option("mergeSchema", "true").mode("overwrite").saveAsTable(table)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0