繁体   English   中英

使用 Scala 中的 AWS Glue 在 S3 中加载 CSV 文件

[英]Load CSV file in S3 with AWS Glue in Scala

这应该很容易...对于我的 AWS Glue 作业,我想从 S3 上的 CSV 文件加载我的配置设置。 这样,我的 lambda 函数可以触发作业并将文件名作为参数发送。 在 Python 中,我可以轻松地做到这一点:

s3 = boto3.resource('s3')
bucket = s3.Bucket(<my bucket name>)
obj = s3.Object(<my bucket name>,<file location>)
data = obj.get()['Body'].read().decode('utf-8')

在 Scala 中,我找不到与 boto3 库等效的任何内容。 我试过这样的 getSourceWithFormat 函数:

var datasource = glueContext.getSourceWithFormat("s3", JsonOptions(Map("paths" -> Set(<file folder name>)),
     Map("exclusions" -> <file patterns to exclude>)), 
     format = "csv", formatOptions = JsonOptions(Map("separator" -> "\t"),Map("header" -> true)))
     .getDynamicFrame()

但我只想加载一个文件并像处理字符串数组一样操作它。

谢谢!

如何将您的数据源转换为数据框,然后在其上调用 collect 方法?

val  myArray = datasource.toDF().collect

它应该是这样的:

  1. 在 Lambda 中编写 python 代码来读取文件。
  2. 使用 Scala 代码创建您的 Glue 作业。
  3. 确保您启用了触发器,该触发器将使用文件名调用 Glue 作业。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM