Me gustaría realizar la operación costosa de productos cruzados en dos conjuntos de datos en Hadoop utilizando Java MapReduce.Producto cruzado en MapReduce
Por ejemplo, tengo registros del conjunto de datos A y del conjunto de datos B, y me gustaría que cada registro en el conjunto de datos A coincida con cada registro en el conjunto de datos B en la salida. Me doy cuenta de que el tamaño de salida de esto sería |A| * |B|
, pero quiero hacerlo de todos modos.
Veo que Pig tiene CROSS
pero no estoy al tanto de cómo se implementa en un alto nivel. Tal vez iré a echar un vistazo al código fuente.
No busco ningún código, solo quiero saber a un alto nivel cómo debería abordar este problema.
¿Puede colocar todas las A, o todas las B, en la memoria de un trabajador? Entonces es bastante sencillo. –
@SeanOwen ¡Deseo! Desafortunadamente, este no es el caso. Un enfoque que estaba pensando fue dividir el conjunto de datos B en ~ 10-100 o más, y luego ejecutar 10-100 trabajos diferentes de mr a la vez. –