0
こんにちは、RedshiftでSpark SQL(2.0.0)を使用してテーブルを切り捨てたいところです。私はこれを使用していますspark-redshiftパッケージ&私はどのように私のテーブルを切り捨てることができるか知りたいです。spark 2.0.0 jdbcを使用してRedshiftテーブルから切り捨て
こんにちは、RedshiftでSpark SQL(2.0.0)を使用してテーブルを切り捨てたいところです。私はこれを使用していますspark-redshiftパッケージ&私はどのように私のテーブルを切り捨てることができるか知りたいです。spark 2.0.0 jdbcを使用してRedshiftテーブルから切り捨て
saveを呼び出す前に、mode
をライブラリに指定する必要があります。例:
my_dataframe.write
.format("com.databricks.spark.redshift")
.option("url", "jdbc:redshift://my_cluster.qwertyuiop.eu-west-1.redshift.amazonaws.com:5439/my_database?user=my_user&password=my_password")
.option("dbtable", "my_table")
.option("tempdir", "s3://my-bucket")
.option("diststyle", "KEY")
.option("distkey", "dist_key")
.option("sortkeyspec", "COMPOUND SORTKEY(key_1, key_2)")
.option("extracopyoptions", "TRUNCATECOLUMNS COMPUPDATE OFF STATUPDATE OFF")
.mode("overwrite") // "append"/"error"
.save()
提供されているコードでは、ユーザーはテーブルを切り捨てることができますか? my_dataframeが空のデータフレームであることを意味しますか? – CedricB
'.mode(" overwrite ")'を実行すると、既存のデータが削除されます。 Redshift URLで指定されたユーザーは、必要な権限を持っている必要があります。そうしないとエラーになります。 –
おそらくmy_dataframeは "my_table"上に構築されていますか?その仮定が正しければ、私は.mode( "上書き")がmy_tableからのデータをすべて私のテーブルに書き戻し、事実上何も切り捨てないと思います。私は何が欠けていますか? – CedricB