pyspark执行者'写到avro时,任务仅限于6

时间:2016-11-22 18:05:54

标签: apache-spark pyspark

这就是我的简单pyspark应用程序:

  • 加入200行,行数为20万行
  • 计算2个字段之间的余弦距离
  • 过滤掉余弦相似度低于0.9
  • 的那些
  • 使用

    以avro格式保存过滤器的结果(大于0.9)
     filtered_df.write.format('com.databricks.spark.avro').save('hdfs://path/result')
    

我使用spark的数据帧来完成此任务(SQLContext)。我的群集信息如下:

  • 13TB RAM(50%利用率)
  • 2K + vcores(利用率60%)

我用以下内容运行我的火花工作:

spark-submit --num-executors 15 --executor-cores 5 --executor-memory 13G test.py
看着我的火花用户界面,我看到了一些由200个任务组成的工作。但是,保存到avro步骤只包含6个并行运行的任务。最后一次运行,大约需要1天才能完成。我该如何优化呢?任何帮助,将不胜感激。我是新来的火花。我正在考虑将其转换为RDD map reduce,但是读取Dataframe操作实际上更有效。

0 个答案:

没有答案