正在尝试基本的东西来理解任务阶段并在Spark中更好地改组。数据集为256 MB
在zeppelin中试过这个
val tmpDF = spark.read
.option("header", "true")
.option("delimiter", ",")
.option("inferSchema", "true")
.csv("s3://l4b-d4t4/wikipedia/pageviews-by-second-tsv")
tmpDF.count
这启动了4个工作 -
与计数陈述相对应的工作的最后阶段有一些令人费解的数据,我无法解释。
阶段详细信息部分显示“输入大小/记录:186.6 MB / 7200000”和Executor的聚合度量标准将“输入大小/记录”称为“186.6 MB / 5371292” - Stage Details UI
在任务列表中,一个特定的服务器ip-xxx-60.eu-west-1.compute.internal有4个任务,“0.0 B / 457130”作为“输入大小/记录”的值 - Task Details UI
我最初认为这是一些本地磁盘缓存或与EMRFS有关的东西。但是,一旦我缓存了数据帧并再次进行了计数,它就显示了对应于16个分区的所有16个任务的“16.8 MB / 46”。
任何更好地理解这一点的链接/指针都非常有用