小编vtb*_*ggi的帖子

使用 aws s3 mv 时的未知选项

我收到错误消息

“未知选项:s3://mybucket/”

使用以下命令集将文件 mv 到 S3 时。我得到的输出echo $b正是我所期望的,所以我知道我正在定位正确的文件。错误发生在线路上aws s3 mv ...

tag=$( tail -n 2 /var/log/cloud-init-output.log )
if [[ ${tag} == *"Processed"* ]]; then
    b=${tag##*"from"}
    b=${b%%.*}  # retain the part before the colon
    aws s3 mv myfolder/ s3://mybucket/ --recursive --exclude "*" --include "$b.txt"
fi
Run Code Online (Sandbox Code Playgroud)

经过很长时间的研究,我相信$bmv 命令中的变量是问题所在,因为如果我替换echo $bfor $bin的输出,它就会起作用$b.txt。但是,我不知道如何解决它。

这是我运行时的输出aws --version

aws-cli/1.14.8 Python/2.7.14 Linux/4.14.47-64.38.amzn2.x86_64 botocore/1.8.12
Run Code Online (Sandbox Code Playgroud)

这是最新版本,我已经尝试运行(我安装了 python3):

pip3 install --upgrade awscli
Run Code Online (Sandbox Code Playgroud)

我知道通配符对于 aws-cli 来说很奇怪,但我不明白为什么使用变量会出现错误。提前致谢。

amazon-s3 amazon-ec2 amazon-web-services aws-cli

3
推荐指数
1
解决办法
2万
查看次数

时间戳未从 Glue 加载到 Redshift 表中

我有一个YYYY-MM-DD XX:XX:XX存储在 S3 中的 csv 文件格式的时间戳,但是当我使用时间戳数据类型使用 Glue 加载到 Redshift 数据库时,时间戳列为空。看来格式是有效的,但我也尝试过YYYYMMDD XXXXXXYYMMDD XX:XX:XX格式化以防万一。

我在 Glue 中的映射是从时间戳到时间戳,表的列数据类型也是时间戳。csv 格式的数据示例:

1,2016 Summer,2016-06-22 00:00:00
Run Code Online (Sandbox Code Playgroud)

实际输出:

Line |    Term     |    Date
-----+-------------+------------
   1 | 2016 Summer |  
Run Code Online (Sandbox Code Playgroud)

预期输出:

Line |    Term     |        Date
-----+-------------+---------------------
   1 | 2016 Summer | 2016-06-22 00:00:00
Run Code Online (Sandbox Code Playgroud)

看来这应该是一项简单的任务,但我无法正确完成,所以如果其他人能发现我的错误,我将不胜感激。

代码:

val datasource37 = glueContext.getCatalogSource(database = "data", tableName = "term", redshiftTmpDir = "", transformationContext = "datasource37").getDynamicFrame()
val applymapping37 = datasource37.applyMapping(mappings = Seq(("id", "bigint", "id", "bigint"), ("name", "string", "name", …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-redshift aws-glue

0
推荐指数
1
解决办法
1274
查看次数