web-dev-qa-db-ja.com

JOIN 2データフレームをクロスする方法は?

2データフレームのCROSS JOINを取得するのに苦労しています。 spark 2.0を使用しています。2つのデータフレームでCROSSS JOINを実装するにはどうすればよいですか?

編集:

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

条件を指定する必要がない場合はcrossJoinを使用します

ここに作業コードの抜粋があります:

people.crossJoin(area).show()
11
Ravish

最新バージョンのspark-sql_2.11バージョン2.1.0にアップグレードし、データセットの関数.crossJoinを使用します。

8
Nischay

結合条件を使用せずに、他のデータフレームでjoinを呼び出します。

次のを見てください。人々の最初のデータフレームを考える:

+---+------+-------+------+
| 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|
+---+------+-------+------+

エリアの2番目のデータフレーム:

+------+--------------+
|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|
+---+------+-------+------+------+--------------+
3
pheeleeppoo