scala - Spark : read csv file from s3 using scala

标签 scala amazon-web-services amazon-s3 apache-spark

我正在编写一个 spark 作业,尝试使用 Scala 读取文本文件,以下在我的本地机器上运行良好。

  val myFile = "myLocalPath/myFile.csv"
  for (line <- Source.fromFile(myFile).getLines()) {
    val data = line.split(",")
    myHashMap.put(data(0), data(1).toDouble)
  }

然后我尝试让它在 AWS 上运行,我做了以下操作,但它似乎没有正确读取整个文件。在 s3 上读取此类文本文件的正确方法是什么?非常感谢!
val credentials = new BasicAWSCredentials("myKey", "mySecretKey");
val s3Client = new AmazonS3Client(credentials);
val s3Object = s3Client.getObject(new GetObjectRequest("myBucket", "myFile.csv"));

val reader = new BufferedReader(new InputStreamReader(s3Object.getObjectContent()));

var line = ""
while ((line = reader.readLine()) != null) {
      val data = line.split(",")
      myHashMap.put(data(0), data(1).toDouble)
      println(line);
}

最佳答案

我想我的工作如下:

    val s3Object= s3Client.getObject(new GetObjectRequest("myBucket", "myPath/myFile.csv"));

    val myData = Source.fromInputStream(s3Object.getObjectContent()).getLines()
    for (line <- myData) {
        val data = line.split(",")
        myMap.put(data(0), data(1).toDouble)
    }

    println(" my map : " + myMap.toString())

关于scala - Spark : read csv file from s3 using scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470705/

相关文章:

scala - 如何为 scala Iterable、spark 数据集制作编码器

scala - Slick threadLocalSession 与隐式 session

amazon-web-services - 重新配置 DNS 以在线显示 SSL 证书?

java - 使用 AWS SDK 的最终类进行单元测试

php - 如何使用php和s3分享无法下载的私有(private)视频?

python - Athena 查询失败并显示 : "Insufficient permissions to execute the query"

scala - 在这个使用泛型的例子中,asInstanceOf 有什么问题吗?

sql - 如何防止sql中in子句出现空列表错误?

amazon-web-services - 使用自托管 Kafka 作为 AWS Lambda 的事件源

node.js - Node-Redshift 是否支持复制命令(查询)将数据从 S3 加载到 Redshift?