当spark数据集使用'groupby'和'pivot'函数时,执行程序不起作用(添加注释)

时间:2018-12-28 12:13:02

标签: scala apache-spark

当我通过Spark(Dataset)执行groupby和ivot函数时,没有执行器在工作。

当我执行spark-submit时,没有错误。但是速度很慢。 在执行其他工作(groupby和pivot功能除外)时可以正常工作的执行程序 (将SparkUI判断为监视)。如果我使用主服务器中的top监视cpu和内存,则cpu 100%和内存值与常量值的偏差不会很大。该状态将一直保持到枢轴结束为止,并且执行save方法时,执行程序将再次工作。

val inputPath="hdfs://master:9000/...csv"
val outputPath="hdfs://master:9000/....csv"
val df=spark.read.option("header","true").csv(inputPath)

val text = df.select(df("text"))
val date = df.select(df("date"))

val text_rdd = text.as(Encoders.STRING).rdd  
val date_rdd = date.as(Encoders.STRING).rdd

val date_text= date_rdd.zip(text_rdd) 

val split_rdd = date_text.flatMapValues(_.split(" ")) 

val date_text_DS=split_rdd.toDS()

val date_text_DS_cols=date_text_DS.withColumnRenamed("_1", "date").withColumnRenamed("_2", "text")   


 date_text_DS_cols.groupBy("date").pivot("text").agg(count("date")).na.fill(0).write.format("com.databricks.spark.csv").option("header",true).save(outputPath)

执行数据透视功能时,如何使所有执行程序正常工作?

添加评论: enter image description here

我看到这张照片时,我想完成枢轴作业。但是师父仍在工作。也许我检查主驱动程序是否正在运行,但不是。 “轴”已完成,但主服务器正在运行。我认为这是矛盾的。 我想知道是否涉及“写入”代码。因此,我在“写”之后删除代码。但是它重塑了相同的东西。

0 个答案:

没有答案