Почему мой BroadcastHashJoin медленнее, чем ShuffledHashJoin в Spark

Я выполняю соединение, используяjavaHiveContext в искре.

Большая таблица составляет 1,76 Гб и имеет 100 миллионов записей.

Вторая таблица имеет размер 273 МБ и имеет 10 миллионов записей.

Я получаюJavaSchemaRDD и я звонюcount() в теме:

String query="select attribute7,count(*) from ft,dt where ft.chiavedt=dt.chiavedt group by attribute7";

JavaSchemaRDD rdd=sqlContext.sql(query);

System.out.println("count="+rdd.count());

Если я заставлюbroadcastHashJoin (SET spark.sql.autoBroadcastJoinThreshold=290000000) и использовать 5 исполнителей на 5 узле с 8 ядрами и 20 Гб памяти, это выполняется за 100 секунд. Если я не включаю трансляцию, она выполняется за 30 секунд.

Нотабене таблицы хранятся в файле Parquet.

Ответы на вопрос(1)

Ваш ответ на вопрос