Разъяснения по использованию спарк-фрейма в scala - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть 3 фрейма данных 'u', 'join5' и site.

Вот схема данных фрейма 'u'.

scala> println(u.printSchema)
root
 |-- split_sk: integer (nullable = true)
 |-- new_date: string (nullable = true)

Теперь создаем join6 с присоединением 'join5'и кадры данных сайта. Вот мои 2 вопроса -

  • Что такое 'u ("split_sk") здесь в следующем запросе? Можно ли использовать столбец фрейма данных 'u' для случайного сравнения, когда соединение с 'u' явно не задано в запросе?

  • Что (<=>) представляет знак для вScala и, в частности, в следующем запросе?

val join6 = join5.join(site, u("split_sk") <=> site("split_key") &&($"new_date" >= $"effective_dt") && ($"new_date" <=  $"expiry_dt"),"left")

1 Ответ

1 голос
/ 04 ноября 2019

Для вопроса 1,

Да, "split_sk" - это столбец в "u". Это похоже на SQL, a.column1 = b.column2. Это искровой способ указать то же, что и выше.

Чтобы ответить на другой вопрос, да, можно указать какой-то столбец кадра данных, которого нет в запросе. Скорее всего, это сценарий объединения данных5, который создается поверх объединения5

. Для вопроса 2

<=> называется объединением NULL SAFE. Обратитесь к этому Spark SQL "<=>" оператору

...