【发布时间】:2020-04-30 23:17:00
【问题描述】:
我使用 spark 创建了一个 CSV 文件,如下所示:
t1.write.option("sep","\001").mode("overwrite").format("csv").save("s3://test123/testcsv001/")
然后尝试在 Redshift 中使用 COPY 命令来加载 CSV 文件:
复制 schema123.table123 来自's3://test123/testcsv001/' access_key_id '删除' secret_access_key '删除' session_token '删除' TIMEFORMAT 'auto' DATEFORMAT 'auto' DELIMITER '\001' IGNOREHEADER AS 0 TRUNCATECOLUMNS NULL as 'NULL' TRIMBLANKS ACCEPTANYDATE EMPTYASNULL BLANKSASNULL ESCAPE COMPUPDATE OFF STATUPDATE ON ;
该命令在第一列具有空值的记录上失败。 spark 中的第一列具有 LONG 的列定义。 目标列是没有 NOT NULL 约束的 BIGINT。 我在 spark 中将列转换为 INT 并将其写入 csv,但由于相同的原因它仍然失败。
根据 redshift 文档将 NULL 加载到 BIGINT 中应该可以正常工作。
对此有何见解?
【问题讨论】:
-
请提供一个样本行?
-
你用的是什么 Spark 版本??
标签: apache-spark pyspark amazon-redshift