Я попытался сравнить производительность Spark SQL версии 1.6 и версии 1.5. В простом случае Spark 1.6 работает быстрее Spark 1.5. Однако в более сложном запросе - в моем случае агрегирующий запрос с наборами групп Spark SQL версии 1.6 намного медленнее, чем Spark SQL версии 1.5. Кто-нибудь замечает ту же проблему? и даже лучше иметь решение для такого рода запросов?Производительность Spark SQL: версия 1.6 vs версия 1.5
Вот мой код
case class Toto(
a: String = f"${(math.random*1e6).toLong}%06.0f",
b: String = f"${(math.random*1e6).toLong}%06.0f",
c: String = f"${(math.random*1e6).toLong}%06.0f",
n: Int = (math.random*1e3).toInt,
m: Double = (math.random*1e3))
val data = sc.parallelize(1 to 1e6.toInt).map(i => Toto())
val df: org.apache.spark.sql.DataFrame = sqlContext.createDataFrame(data)
df.registerTempTable("toto")
val sqlSelect = "SELECT a, b, COUNT(1) AS k1, COUNT(DISTINCT n) AS k2, SUM(m) AS k3"
val sqlGroupBy = "FROM toto GROUP BY a, b GROUPING SETS ((a,b),(a),(b))"
val sqlText = s"$sqlSelect $sqlGroupBy"
val rs1 = sqlContext.sql(sqlText)
rs1.saveAsParquetFile("rs1")
Вот 2 скриншота Spark 1.5.2 и Spark 1.6.0 с --driver-памяти = 1G. DAG на Spark 1.6.0 можно посмотреть по адресу DAG.
Кажется, что он перетасовывает больше в 1.6, можете ли вы отправить две группы DAG? –
Спасибо @SebastianPiu. Вы можете увидеть 2 скриншота с пустыми DAG в [spark 1.5.2] (http://i.stack.imgur.com/dLXiK.png) и [искра 1.6.0] (http: //i.stack.imgur .com/4oomU.png). В других случаях Spark все еще отображает DAG. –
Да, к сожалению, это ошибка, вызванная тем, что хром обновился, поэтому невозможно устранить ошибки в DAG :( –