Dataframe 删除HDFS文件中的数据并调整Spark

Dataframe 删除HDFS文件中的数据并调整Spark,dataframe,apache-spark,hadoop,pyspark,hdfs,Dataframe,Apache Spark,Hadoop,Pyspark,Hdfs,我有一个脚本,可以删除存储在HDFS中的txt文件中的行。数据按天分区,每个分区的数据小于10MB 代码将所有数据读入一个数据帧(DF1),保持跟踪或src数据,因此我可以在最后重新写入数据。 然后基于另一个单列数据帧(DF2),删除包含DF2上任何字符串的所有行 虽然代码需要很长时间才能完成,但数据量不大 Spark应如何配置以运行?更多的执行器、内核、内存? 或者我可以用另一种方式处理数据帧 首先,对于这种大小的数据,是否可以不使用Spark?而是读入原始资源并在VM/容器上运行它们 我们需

我有一个脚本,可以删除存储在HDFS中的txt文件中的行。数据按天分区,每个分区的数据小于
10MB

代码将所有数据读入一个数据帧(
DF1
),保持跟踪或src数据,因此我可以在最后重新写入数据。 然后基于另一个单列数据帧(
DF2
),删除包含
DF2
上任何字符串的所有行

虽然代码需要很长时间才能完成,但数据量不大

Spark应如何配置以运行?更多的执行器、内核、内存?
或者我可以用另一种方式处理数据帧

首先,对于这种大小的数据,是否可以不使用Spark?而是读入原始资源并在VM/容器上运行它们

我们需要了解更多关于您现在使用的配置的信息,以提供建议:您当前使用了多少内核?是否接近最大利用率


此外,代码示例对诊断问题有很大帮助

广播DF2并运行相同的进程。这将提高性能

为了进一步减少运行时间,可以增加执行器的数量(--num executor)。由于每个分区只有10Mb左右,我建议您为每个执行器使用最少的资源(--executor memory 1G--executor cores 1)


这些是可以立即用于减少运行时间的少数几个选项。通过进一步分析数据和使用的序列化,您可以尝试进一步优化它。

如果两个数据帧具有行ID,则执行广播连接、过滤和删除以获得最佳性能