Трансляция не происходит при присоединении к фреймам данных в Spark 1.6

Ниже приведен пример кода, который я запускаю. при запуске этой искровой работы соединения Dataframe происходят с использованием sortmergejoin вместо broadcastjoin.

def joinedDf (sqlContext: SQLContext,
              txnTable:   DataFrame,
              countriesDfBroadcast: Broadcast[DataFrame]): 
              DataFrame = {
                    txnTable.as("df1").join((countriesDfBroadcast.value).withColumnRenamed("CNTRY_ID", "DW_CNTRY_ID").as("countries"),
                    $"df1.USER_CNTRY_ID" === $"countries.DW_CNTRY_ID", "inner")
              }
joinedDf(sqlContext, txnTable, countriesDfBroadcast).write.parquet("temp")  

Вещание не происходит, даже если я указал подсказку broadcast () в операторе соединения.

Оптимизатор разбивает на разделы фрейм данных и вызывает перекос данных.

Кто-нибудь видел такое поведение?

Я запускаю это на пряжу, используя Spark 1.6 и HiveContext в качестве SQLContext. Искровая работа работает на 200 исполнителей. и размер данных txnTable составляет 240 ГБ, а размер данных странDf составляет 5 МБ.

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

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