Di seguito è riportato il codice di esempio che sto utilizzando. quando viene eseguito questo processo spark, i join di Dataframe si stanno verificando utilizzando sortmergejoin anziché broadcastjoin.Trasmissione non avvenuta durante l'adesione a dataframes in Spark 1.6
Il broadcastjoin non sta accadendo anche quando si specifica un suggerimento broadcast() nell'istruzione join.
L'ottimizzatore sta eseguendo il partizionamento del dataframe e sta causando l'inclinazione dei dati.
Qualcuno ha visto questo comportamento?
L'ho eseguito su filato utilizzando Spark 1.6 e HiveContext come SQLContext. Il lavoro spark funziona su 200 esecutori. e la dimensione dei dati di txnTable è 240 GB e il datasize di countriesDf è 5mb.
Ora, sto vedendo BroadcastHashJoin in una corsa e SortMergeJoin in un'altra corsa. (stesso codice, set di dati diversi). –
Suppongo che superi la soglia di dimensione per i join di trasmissione. – zero323
Ho uno spark.sql.autoBroadcastJoinThreshold molto alto. Circa. 1 GB. E il file che viene trasmesso è di circa 5 MB. Tuttavia, in altri termini, la raccomandazione sopra funziona alla grande. –