首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon EMR和S3,org.apache.spark.sql.AnalysisException:路径s3://..../var/表已存在

Amazon EMR和S3,org.apache.spark.sql.AnalysisException:路径s3://..../var/表已存在
EN

Stack Overflow用户
提问于 2016-08-04 00:16:11
回答 1查看 1.9K关注 0票数 1

我试图在Spark 2.0.0上找到bug的来源,我有一个映射,它将表名作为键,数据帧作为值,我循环遍历它,最后使用spark-avro (3.0.0-preview2)将所有内容写入S3目录。它在本地运行得很好(当然是本地路径,而不是s3路径),但当我在亚马逊的电子病历上运行它时,它会运行一段时间,然后它会说文件夹已经存在并终止(这意味着同一键值在for循环中被多次使用,对吧?)。这可能是线程化的问题吗?

代码语言:javascript
复制
for ((k, v) <- tableMap) {
  val currTable: DataFrame = tableMap(k)
  val decryptedCurrTable = currTable.withColumn("data", decryptUDF(currTable("data")))
  val decryptedCurrTableData = sparkSession.sqlContext.read.json(decryptedCurrTable.select("data").rdd.map(row => row.toString()))
  decryptedCurrTable.write.avro(s"s3://..../$k/table")
  decryptedCurrTableData.write.avro(s"s3://..../$k/tableData")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-04 03:28:44

我认为这是一个并发问题,我将代码更改为:

代码语言:javascript
复制
decryptedCurrTable.write.mode("append").avro(s"s3://..../$k/table")
decryptedCurrTableData.write.mode("append").avro(s"s3://..../$k/tableData")  

一切都运行得很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38748838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档