2017-02-10 2 views
-1

Я изо всех сил пытаюсь получить CROSS JOIN из 2 кадров данных. Я использую искру 2.0. Как я могу реализовать CROSSS JOIN с 2 кадрами данных?Как получить данные по кадрам CROSS JOIN 2?

Edit:

val df=df.join(df_t1, df("Col1")===df_t1("col")).join(df2,joinType=="cross join").where(df("col2")===df2("col2")) 
+0

покажите нам, что вы пробовали. ... –

+0

val df = df.join (df_t1, df ("Col1") === df_t1 ("col")). Join (df2, joinType == "cross join"). Где (df ("col2") === df2 ("col2")) – Miruthan

ответ

0

Вызов присоединиться с другой dataframe без использования условия соединения.

Посмотрите на следующий пример. Учитывая первый dataframe людей:

+---+------+-------+------+ 
| id| name| mail|idArea| 
+---+------+-------+------+ 
| 1| Jack|[email protected]|  1| 
| 2|Valery|[email protected]|  1| 
| 3| Karl|[email protected]|  2| 
| 4| Nick|[email protected]|  2| 
| 5| Luke|[email protected]|  3| 
| 6| Marek|[email protected]|  3| 
+---+------+-------+------+ 

и второй dataframe областей:

+------+--------------+ 
|idArea|  areaName| 
+------+--------------+ 
|  1|Amministration| 
|  2|  Public| 
|  3|   Store| 
+------+--------------+ 

перекрестное соединение просто определяется по формуле:

val cross = people.join(area) 
+---+------+-------+------+------+--------------+ 
| id| name| mail|idArea|idArea|  areaName| 
+---+------+-------+------+------+--------------+ 
| 1| Jack|[email protected]|  1|  1|Amministration| 
| 1| Jack|[email protected]|  1|  3|   Store| 
| 1| Jack|[email protected]|  1|  2|  Public| 
| 2|Valery|[email protected]|  1|  1|Amministration| 
| 2|Valery|[email protected]|  1|  3|   Store| 
| 2|Valery|[email protected]|  1|  2|  Public| 
| 3| Karl|[email protected]|  2|  1|Amministration| 
| 3| Karl|[email protected]|  2|  2|  Public| 
| 3| Karl|[email protected]|  2|  3|   Store| 
| 4| Nick|[email protected]|  2|  3|   Store| 
| 4| Nick|[email protected]|  2|  2|  Public| 
| 4| Nick|[email protected]|  2|  1|Amministration| 
| 5| Luke|[email protected]|  3|  2|  Public| 
| 5| Luke|[email protected]|  3|  3|   Store| 
| 5| Luke|[email protected]|  3|  1|Amministration| 
| 6| Marek|[email protected]|  3|  1|Amministration| 
| 6| Marek|[email protected]|  3|  2|  Public| 
| 6| Marek|[email protected]|  3|  3|   Store| 
+---+------+-------+------+------+--------------+ 
2

Обновление до последней версии искрения sql_2 .11 version 2.1.0 и использовать функцию .crossJoin набора данных

Смежные вопросы