- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,其中包含大约 200-600 GB 的数据,我正在读取、处理这些数据,然后使用 spark shell (scala)
将其写入 csv。在弹性映射减少集群上。即使在 8 小时后,Spark 写入 CSV 也会失败
这是我写入 csv 的方式:
result.persist.coalesce(20000).write.option("delimiter",",").csv("s3://bucket-name/results")
结果变量是通过混合来自其他一些数据帧的列创建的: var result=sources.join(destinations, Seq("source_d","destination_d")).select("source_i","destination_i")
现在,我能够在大约 22 分钟内读取它所基于的 csv 数据。在同一个程序中,我还能够在 8 分钟内将另一个(较小的)数据帧写入 csv。然而,对于这个result
dataframe 它需要 8 个多小时但仍然失败......说其中一个连接已关闭。
我也在 13 x c4.8xlarge instances on ec2
上运行这项工作,每个都有 36 个内核和 60 GB 的内存,所以我认为我有能力写入 csv,尤其是在 8 小时后。
许多阶段需要重试或任务失败,我无法弄清楚我做错了什么或为什么要花这么长时间。我可以从 Spark UI 看到它甚至从未进入写入 CSV 阶段并且忙于持久化阶段,但是如果没有持久化功能它在 8 小时后仍然失败。有任何想法吗?非常感谢您的帮助!
更新:
我运行了以下命令来重新分区 result
可变为 66K 分区:
val r2 = result.repartition(66000) #confirmed with numpartitions
r2.write.option("delimiter",",").csv("s3://s3-bucket/results")
然而,即使在几个小时后,作业仍然失败。我还做错了什么?
请注意,我正在通过 spark-shell yarn --driver-memory 50G
运行 spark shell
更新 2:
我试过先用 persist 运行写入:
r2.persist(StorageLevel.MEMORY_AND_DISK)
但是我有很多阶段都失败了,返回一个,Job aborted due to stage failure: ShuffleMapStage 10 (persist at <console>:36) has failed the maximum allowable number of times: 4. Most recent failure reason: org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 3'
或者说 Connection from ip-172-31-48-180.ec2.internal/172.31.48.180:7337 closed
最佳答案
I can see from the Spark UI that it never even got to the write CSV stage and was busy with persist stages, but without the persist function it was still failing after 8 hours. Any ideas?
是FetchFailedException
即无法获取洗牌 block
既然你能够处理小文件,那么只有大数据才会失败......我强烈觉得分区不够。
首先是验证/打印 source.rdd.getNumPartitions()
。和 destinations.rdd.getNumPartitions()
。和 result.rdd.getNumPartitions()
。
数据加载完成后需要重新分区,以便将数据分区(通过shuffle)到集群中的其他节点。这将为您提供更快处理而不会失败所需的并行性
此外,要验证应用的其他配置...像这样打印所有配置,根据需要将它们调整为正确的值。
sc.getConf.getAll
关于apache-spark - 即使在 8 小时后,Spark 写入 CSV 也会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44485939/
我有这个代码 var myChart = new FusionCharts("../themes/clean/charts/hbullet.swf", "myChartId", "400", "75
既然写入是立即进行的(复制到内核缓冲区并返回),那么使用 io_submit 进行写入有什么好处? 事实上,它 (aio/io_submit) 看起来更糟,因为您必须在堆上分配写入缓冲区并且不能使用基
我正在使用 mootool 的 Request.JSON 从 Twitter 检索推文。收到它后,我将写入目标 div 的 .innerHTML 属性。当我在本地将其作为文件进行测试时,即 file:
最终,我想将 Vertica DB 中的数据抓取到 Spark 中,训练机器学习模型,进行预测,并将这些预测存储到另一个 Vertica DB 中。 当前的问题是确定流程最后部分的瓶颈:将 Spark
我使用 WEKA 库编写了一个 Java 程序, 训练分类算法 使用经过训练的算法对未标记的数据集运行预测 将结果写入 .csv 文件 问题在于它当前写出离散分类结果(即算法猜测一行属于哪个类别)。我
背景 - 我正在考虑使用 clickonce 通过 clickonce(通过网站)部署 WinForms 应用程序。相对简单的应用程序的要素是: - 它是一个可执行文件和一个数据库文件(sqlite)
是否有更好的解决方案来快速初始化 C 数组(在堆上创建)?就像我们使用大括号一样 double** matrix_multiply(const double **l_matrix, const dou
我正在读取 JSON 文件,取出值并进行一些更改。 基本上我向数组添加了一些值。之后我想将其写回到文件中。当我将 JSONArray 写回文件时,会被写入字符串而不是 JSONArray 对象。怎样才
我为两个应用程序使用嵌入式数据库,其中一个是服务器,另一个是客户端。客户端应用程序。可以向服务器端发送获取数据请求以检索数据并显示在表格(或其他)中。问题是这样的:如何将获取的数据保存(写入)到页面文
是否有更好的解决方案来快速初始化 C 数组(在堆上创建)?就像我们使用大括号一样 double** matrix_multiply(const double **l_matrix, const dou
从问题得出问题:找到所有 result = new ArrayList(); for (int i = 2; i >(i%8) & 0x1) == 0) { result.add(i
由于某种原因,它没有写入 CSV。谁能明白为什么它不写吗? def main(): list_of_emails = read_email_csv() #read input file, cr
关闭。 这个问题是 not reproducible or was caused by typos 。它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能在这里出现,
我目前正在开发一个保存和加载程序,但我无法获得正确的结果。 编写程序: #include #include #define FILENAME "Save" #define COUNT 6 type
import java.io.*; public class Main2 { public static void main(String[] args) throws Exception {
我需要使用预定义位置字符串“Office”从所有日历中检索所有 iOS 事件,然后将结果写入 NSLog 和 UITextView。 到目前为止,这是我的代码: #import "ViewCo
我正在尝试将 BOOL 值写入 PFInstallation 中的列,但会不停地崩溃: - (IBAction)pushSwitch:(id)sender { NSUserDefaults *push
我以前在学校学过一些简单的数据库编程,但现在我正在尝试学习最佳实践,因为我正在编写更复杂的应用程序。写入 MySQL 数据库并不难,但我想知道让分布式应用程序写入 Amazon EC2 上的远程数据库
是否可以写回到ResourceBundle?目前我正在使用 ResourceBundle 来存储信息,在运行时使用以下内容读取信息 while(ResourceBundle.getBundle("bu
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!