udemy tutorial spark espaƱol apache-spark hive range bigdata

apache spark - tutorial - Encontrar eficientemente todos los sub rangos relevantes para las tablas bigdata en Hive/Spark



scala y spark (1)

Con spark , ¿quizás una unión no equi como esta?

val join_expr = major_range("From") < sub_range("To") && major_range("To") > sub_range("From") (major_range.join(sub_range, join_expr) .select( monotonically_increasing_id().as("row"), major_range("Group").as("Major"), sub_range("Group").as("Sub") ) ).show +---+-----+---+ |row|Major|Sub| +---+-----+---+ | 0| A| E| | 1| A| F| | 2| B| H| | 3| C| G| | 4| D| H| +---+-----+---+

Después de esta pregunta, me gustaría preguntar. Tengo 2 tablas: la primera tabla - MajorRange

row | From | To | Group .... -----|--------|---------|--------- 1 | 1200 | 1500 | A 2 | 2200 | 2700 | B 3 | 1700 | 1900 | C 4 | 2100 | 2150 | D ...

La segunda tabla - SubRange

row | From | To | Group .... -----|--------|---------|--------- 1 | 1208 | 1300 | E 2 | 1400 | 1600 | F 3 | 1700 | 2100 | G 4 | 2100 | 2500 | H ...

La tabla de salida debe ser todos los grupos SubRange que se superponen sobre los grupos MajorRange . En el siguiente ejemplo, la tabla de resultados es:

row | Major | Sub | -----|--------|------|- 1 | A | E | 2 | A | F | 3 | B | H | 4 | C | G | 5 | D | H |

En caso de que no haya superposición entre los rangos, el Major no aparecerá. Ambas tablas son tablas de datos grandes. ¿Cómo puedo hacerlo usando Hive / Spark de la manera más eficiente?