A transmissão não ocorre ao ingressar nos quadros de dados no Spark 1.6

Abaixo está o código de exemplo que estou executando. Quando esse trabalho de faísca é executado, as associações ao Dataframe acontecem usando sortmergejoin em vez de 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")  

O broadcastjoin não está acontecendo, mesmo quando eu especifico uma dica broadcast () na instrução de junção.

O otimizador está dividindo o quadro de dados com hash e causando distorção de dados.

Alguém viu esse comportamento?

Estou executando isso no fio usando Spark 1.6 e HiveContext como SQLContext. O trabalho de faísca é executado em 200 executores. e o tamanho dos dados da txnTable é de 240 GB e o tamanho dos dados de countriesDf é de 5mb.

questionAnswers(1)

yourAnswerToTheQuestion