0

我正在尝试在 Redshift 中插入一个数据集,其值为:

"2015-04-12T00:00:00.000+05:30"
"2015-04-18T00:00:00.000+05:30"
"2015-05-09T00:00:00.000+05:30"
"2015-05-24T00:00:00.000+05:30"
"2015-07-19T00:00:00.000+05:30"
"2015-08-02T00:00:00.000+05:30"
"2015-09-05T00:00:00.000+05:30"

我在 S3 数据上运行的爬虫无法识别值的列或数据类型。我一直在调整表设置以完成将数据推送到 Redshift 的工作,但无济于事。这是我迄今为止尝试过的:

  1. 在 Glue Catalog 的表定义中手动添加列。上面提到的只有 1 列。
  2. 将 Serde 序列化库从 LazySimpleSerde 更改为 org.apache.hadoop.hive.serde2.lazy.OpenCSVSerDe
  3. 添加了以下 Serde 参数 - quoteChar ", line.delim \n, field.delim \n
  4. 我已经尝试过 line.delim 和 field.delim 属性的不同组合。包括一个,省略另一个,同时服用两者。
  5. 将分类从 UNKONWN 更改为表格属性中的文本。
  6. 将 recordCount 属性更改为 469 以匹配原始数据行数。

作业运行总是成功的。作业运行后,当我从 table_name 中选择 * 时,我总是根据原始数据在 redshift 表中获得正确的行数,但所有行都是 NULL。如何填充 Redshift 中的行?

表格属性已上传到此处的相册中:Imgur 相册

4

1 回答 1

0

我无法使用 Glue 将数据推送到 Redshift。所以我转向了 Redshift 的 COPY 命令。这是我执行的命令,以防其他人需要它或面临相同的情况:

copy schema_Name.Table_Name
from 's3://Path/To/S3/Data'
iam_role 'arn:aws:iam::Redshift_Role'
FIXEDWIDTH 'Column_Name:31'
region 'us-east-1';
于 2019-03-08T06:33:01.507 回答