Spark SQL — объединить два кадра данных в SparkSQL

avatar
Javier Navarro
7 апреля 2018 в 22:56
97
1
0

У меня есть два кадра данных только с одной записью и одним столбцом в каждом, и я хочу объединить их, чтобы получить результат в одной строке.

В настоящее время: (два отдельных фрейма данных)

+-----------+
|women color|
+-----------+
|         14|
+-----------+

+---------+
|men color|
+---------+
|       11|
+---------+

Желаемый:

+-----------+---------+------------+
|women color|men color|women-men   |
+-----------+---------+------------+
|         14|       11|           3|
+-----------+---------+------------+

Заранее спасибо

Источник
ernest_k
7 апреля 2018 в 23:03
0

Откуда берется столбец women-men?

Javier Navarro
7 апреля 2018 в 23:08
0

вычитание - женщины минус мужчины

Ответы (1)

avatar
Raphael Roth
8 апреля 2018 в 12:15
0

вы можете перекрестно соединить два кадра данных, если в каждом из них есть только 1 строка:

import spark.implicits._

val df1 = Seq(14).toDF("women color")
val df2 = Seq(11).toDF("men color")

df1.crossJoin(df2)
  .withColumn("women - men", $"women color" - $"men color")
  .show()

+-----------+---------+-----------+
|women color|men color|women - men|
+-----------+---------+-----------+
|         14|       11|          3|
+-----------+---------+-----------+

Или даже лучше: не используйте для этой задачи фреймы данных Spark, просто используйте простые структуры данных Scala