Apache spark 对Spark数据帧调用simple count()失败
集群管理器:纱线 部署模式:无 有人告诉我,如果部署模式设置为“无”,则驱动器进程的stdout位于根路径,而不是驱动器进程的容器id内 SparkUI日志:给出在丢失节点上执行的错误Apache spark 对Spark数据帧调用simple count()失败,apache-spark,spark-dataframe,amazon-emr,Apache Spark,Spark Dataframe,Amazon Emr,集群管理器:纱线 部署模式:无 有人告诉我,如果部署模式设置为“无”,则驱动器进程的stdout位于根路径,而不是驱动器进程的容器id内 SparkUI日志:给出在丢失节点上执行的错误容器… 在进行此调用之前,我已取消持久化所有其他数据帧/数据集,以确保它们不会缓存在内存中 调用像count()这样的简单操作会一直失败 我基本上在做以下工作: columnNames.keys.foreach( col => { val nonNullColCount = data
容器…
在进行此调用之前,我已取消持久化所有其他数据帧/数据集,以确保它们不会缓存在内存中
调用像count()
这样的简单操作会一直失败
我基本上在做以下工作:
columnNames.keys.foreach(
col => {
val nonNullColCount =
dataset.select(dataset(col)).filter(row =>
row.getAs(col) != null).count()
println(nonNullParamsCount)
})
因此,我在循环中对数据集调用count()
。
在每次迭代中,我从列名列表中选择一列
错误具有普遍性和误导性,表现为:
Job aborted due to stage failure: Task 284 in stage 14.0 failed 4 times,
most recent failure: Lost task 284.3 in stage 14.0 (TID 100923, ip-172-31-50-226.ec2.internal, executor 266):
ExecutorLostFailure (executor 266 exited caused by one of the running tasks)
Reason: Container marked as failed: container_1506075842477_0672_01_017877 on host: ip-172-31-50-226.ec2.internal.
Exit status: -100.
Diagnostics: Container released on a *lost* node
如果您使用的是AWS现货实例和现货实例收回的价格变化,您可以得到以下错误 退出状态:-100。诊断:在丢失的节点上释放容器 解决方法将Spark作业拆分为许多独立的步骤,因此可以保存
每个步骤的结果在短时间间隔内以文件形式出现在S3上,或者使用非现货实例。如果您使用AWS现货实例和现货实例收回价格变化,则可能会出现以下错误 退出状态:-100。诊断:在丢失的节点上释放容器 解决方法将Spark作业拆分为许多独立的步骤,因此可以保存
每个步骤的结果在短时间间隔内以文件形式出现在S3上,或者使用非现场实例。您可以添加Sprk UI日志,也可以添加一些其他信息,如Spark版本、模式(Cluster Thread或Mesos)、独立和完整日志。您的配置在AWS上吗?是的。它在aws emr上。您是否使用spot实例?您是否可以添加Sprk UI日志,也可以添加一些其他信息,如Spark版本、模式(Cluster Thread或Mesos)、独立和完整日志。您的配置是否在aws上?是的。它在aws emr上。您是否使用spot实例?