【发布时间】:2016-07-22 18:57:13
【问题描述】:
我正在尝试使用 pyspark 直接将 S3 上以镶木地板格式的数据加载到 aws redshift。我能够做到这一点,但是当我看到表定义中列的编码时,它是一致的。我想让它保持一致,特别是我希望他们所有人都是 lzo。以下是来自单个表的不一致的数据类型列表。
+-------------------------------+-------------------+
| data_type | encoding |
+-------------------------------+-------------------+
| bigint | delta |
| bigint | delta32k |
| character varying(256) | lzo |
| bigint | runlength |
| bigint | bytedict |
| timestamp without time zone | bytedict |
| integer | runlength |
+-------------------------------+-------------------+
有人可以帮助我如何在 pyspark 中执行此操作。我在 com.databricks:spark-redshift_2.10:1.0.0
中看不到任何列编码选项 x.write.format("com.databricks.spark.redshift")
.option("url","jdbc:redshift://<url>:<port>/<schema>?user=<user>&password=<pass>")
.option("dbtable","<tbl_nm>")
.option("diststyle","KEY").option("distkey","<key>")
.option("sortkeyspec","SORTKEY(<sort1>)")
.option("tempdir","<path>")
.mode("error").save()
【问题讨论】: