Как сериализовать / десериализовать классы дел из набора данных искры в / из s3 - PullRequest
0 голосов
/ 30 января 2019

Допустим, у меня есть набор данных [MyData], в котором MyData определяется как: case class MyData(id: String, listA: List[SomeOtherCaseClass])

Я хочу сохранить данные в s3 и позже загрузить их обратно с помощью класса дел MyData.Я знаю, что данные класса дел можно сериализировать.Но можно ли сделать так:

myData.write.xxxx("s3://someBucket/some")

// later
val myloadedData: Dataset[MyData] = spark.read.yyyy("s3://someBucket/some", MyData)

1 Ответ

0 голосов
/ 30 января 2019

Что означает для вас сериализация ?

Поскольку вам нужно делать только то, что вы показали, выбирая любой доступный формат , который вам нравится, например, csv, json, parquet, orc, ...
(я бы рекомендовал провести бенчмаркинг между ORC и паркетом для ваших данных, чтобы увидеть, какой из них работает лучше для вас).

myData.write.orc("s3://someBucket/somePath")

И, при чтении, просто используйте тот же формат, чтобы получить обратно DataFrame, который вы можете привести кa Dataset[MyData] с использованием метода as[T] .

val myloadedData: Dataset[MyData] = spark.read.orc("s3://someBucket/somePath").as[MyData]

Или у вас возник вопрос, как подключиться к S3 ?- Если это так, если вы работаете с EMR , то все будет уже настроено.Вам нужно только предварять ваш путь с помощью s3://, как вы уже сделали.

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