Spark BinaryType для Scala / Java - PullRequest
       10

Spark BinaryType для Scala / Java

0 голосов
/ 11 марта 2020

Я создаю приложение spark, используя scala со следующими данными:

+----------+--------------------+
|        id|                data|
+----------+--------------------+
|    id1   |[AC ED 00 05 73 7...|
|    id2   |[CF 33 01 61 88 9...|
+----------+--------------------+

Схема показывает:

root
 |-- id: string (nullable = true)
 |-- data: binary (nullable = true)

Я пытался преобразовать этот кадр данных в объект карты, с идентификатором, являющимся ключом, и данными, являющимися значением

Я попытался:

df.as[(String, BinaryType)].collect.toMap

, но я получил следующую ошибку:

java.lang.UnsupportedOperationException: No Encoder found for org.apache.spark.sql.types.BinaryType
- field (class: "org.apache.spark.sql.types.BinaryType", name: "_2")
- root class: "scala.Tuple2"

1 Ответ

0 голосов
/ 11 марта 2020

BinaryType - это искра DataType. Он отображается в Scala / Java на Array[Byte].

Попробуйте df.as[(String, Array[Byte])].collect.toMap.

Убедитесь, что вы импортировали свои сеансы implicits, например, import spark.implicits._, чтобы вы получили возможность неявно создавать Encoder[T] экземпляров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...