Как создать два столбца из DataFrame в Scala - PullRequest
0 голосов
/ 11 мая 2018

Я одобряю этот пример машинного обучения Apache , чтобы создать систему рекомендаций для наших пользователей на основе оценок, которые они дали, и я получил эти данные, которые являются 10 рекомендациями продукта для userId 31511 (ознакомьтесь споследний код примера выше)

 scala> results.show
 +------+--------------------+
 |userId|     recommendations|
 +------+--------------------+
 | 31511|[[328, 0.7845393]...|
 +------+--------------------+

scala> results.printSchema
root
 |-- userId: integer (nullable = false)
 |-- recommendations: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- productionId: integer (nullable = true)
 |    |    |-- rating: float (nullable = true)

и я хочу знать, как создать еще один DataFrame из переменной «results», которая выглядит следующим образом

+------------+------+
|productionId|rating|
+------------+------+
|          1 |     1|
+------------+------+
|          2 |   4.5|
+------------+------+
|          3 |     5|
+------------+------+
|          4 |   2.5|
+------------+------+

1 Ответ

0 голосов
/ 11 мая 2018

Просто взорвитесь и выберите

import org.apache.spark.sql.functions.{col, explode}

results.select(explode($"recommendations") as "recommendations").select(
  col("recommendations.*")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...