Scala 火花内存不足异常
我每天收到10 GB的文件,其中包含员工详细信息。需要从前一天和当前日期的文件中选择最新记录。例如:8月6日和8月7日的文件需要在时间戳列上进行比较,并选择最新记录Scala 火花内存不足异常,scala,apache-spark,Scala,Apache Spark,我每天收到10 GB的文件,其中包含员工详细信息。需要从前一天和当前日期的文件中选择最新记录。例如:8月6日和8月7日的文件需要在时间戳列上进行比较,并选择最新记录 8月6日档案 emp-id name dept phone-No time-Stamp 1 Jhon Sales 817234518 12-6-2019 2 Marry Production 927234565 4-3-2019 3
- 8月6日档案
emp-id name dept phone-No time-Stamp 1 Jhon Sales 817234518 12-6-2019 2 Marry Production 927234565 4-3-2019 3 James Marketing 625234522 21-1-2019
emp-id name dept phone-No time-Stamp 1 Jhon Sales 817234518 12-7-2019 4 Jerry Sales 653214442 12-7-2019 3 James Marketing 625234522 2-6-2019
- 8月7日档案
emp-id name dept phone-No time-Stamp 1 Jhon Sales 817234518 12-6-2019 2 Marry Production 927234565 4-3-2019 3 James Marketing 625234522 21-1-2019
emp-id name dept phone-No time-Stamp 1 Jhon Sales 817234518 12-7-2019 4 Jerry Sales 653214442 12-7-2019 3 James Marketing 625234522 2-6-2019
- 预期产量
emp-id name dept phone-No time-Stamp 1 Jhon Sales 817234518 12-7-2019 2 Marry Production 927234565 4-3-2019 3 James Marketing 625234522 2-5-2019 4 Jerry Sales 653214442 12-7-2019
val mergedDF = currentDayDF.union(previousDayDF)
mergedDF.show(false)
val windowSpec = Window.partitionBy("emp-id").orderBy(col("timeStamp").desc)
val latestForEachKey = mergedDF.withColumn("rank", rank().over(windowSpec))
.filter(col("rank") === 1)
.drop("rank")
问题
分区用于并行执行。Spark将尝试在所有可用分区中同时加载所有20GB数据。如果创建分区的所有执行器的组合内存小于20 GB,则会抛出内存不足错误请尝试将每个问题帖子限制为一个问题,请参见例如:。您写道您尝试了上面的
连接。结果是什么?它与您想要的有什么不同?我编辑了问题并包含了输出。谢谢,我对这个问题投了否决票,我决定结束这个问题,因为它太宽泛了。正如@Shaido所说:“将每个问题帖子限制为一个问题”。你的一些问题也已经在网站上得到了回答。你只需要寻找它们。我已经根据收到的评论更改了问题范围,请帮助我回答。我在发布之前已经搜索了答案question@Niketa当前位置对我来说,它仍然像两个独立的问题?一个是关于内存问题,另一个是关于如何进行连接以获得预期的输出。或者运行该代码时是否发生内存异常?