我对Spark真的很陌生,这个问题大约有一个星期。
到目前为止,我正在使用具有查询结果(sqlContext.sql)的DF,并将其保存为表saveAsTable)。
我正在使用通过这种方式使用窗口的查询创建DF。
scala> sqlContext.sql("SELECT key1, if(row_number() over a=1 or Fielda is null,1,0) as Rfield1, row_number() over a as sorted_a FROM domain.table1 window a as ( partition by fieldb order by fieldc desc, fieldd desc, fielde desc, fieldf desc, fieldg desc, fieldh desc, fieldi, fieldj desc, fieldk, fieldL desc, FieldM desc) limit 200")
我使用show命令来证明查询y可以运行,并且得到:
scala> DFOut.show()
+------------+---------------+-----------+
| Key1 | RField1 | sorted_a |
+------------+---------------+-----------+
| 04968556| 1| 1|
| 04968425| 0| 2|
| 04967642| 0| 3|
| 04723129| 0| 4|
| 04723078| 0| 5|
| 39357650| 1| 1|
| 37281208| 0| 2|
| 36825618| 0| 3|
| 36613083| 0| 4|
| 31948119| 0| 5|
| 31354512| 0| 6|
| 30500946| 0| 7|
| 30500941| 0| 8|
| 30500915| 0| 9|
| 30500905| 0| 10|
| 30500841| 0| 11|
| 29681100| 0| 12|
| 29617308| 0| 13|
| 29144052| 0| 14|
| 28911497| 0| 15|
+------------+---------------+-----------+
仅显示前20行
问题是我想另存为表格时
DFOut.saveAsTable("domain.destinationtable")
它花了很多时间在:
[阶段3:============================================ ===========>(199 +1)/ 200]
然后:
WARN cluster.YarnSchedulerBackend $ YarnSchedulerEndpoint:标记为失败的容器:主机上的container_e25_1560124121636_286351_01_000067:dfsdtlkpvlmx303.mx.corp。退出状态:143。诊断:根据要求将容器杀死。退出代码是143 容器退出,退出代码为非零143 被外部信号杀死
问题仅在于此查询。
以前有人遇到过同样的问题吗?