Использование любого типа данных в Scala spark - PullRequest
0 голосов
/ 30 мая 2020

Я пишу общее c искровое задание, в котором я не знаю заранее совокупные ключи. Намерение состоит в том, что пользователь может выбрать любой случайный столбец, и задание начнет создавать агрегаты на основе этого. Возьмем небольшую выборку, например

Col_A Int
Col_B String
Col_C Long

. Пользователь может выбрать любой из них в предложении group by и выбрать меру. Это задание теперь должно выполняться как поток.

Для реализации этого создан объект

class AggregateValue(var value: Any)

Этот объект будет содержать значение ключа. Так как тип я не знаю, оставлю Any . Теперь я хочу понять, лучший ли вариант для этого - Any. Есть ли недостатки использования Any в качестве типа с точки зрения производительности и т. Д. c.

Кроме того, я понимаю, что безопасность типов является проблемой с Any. Вы, ребята, ожидаете какого-либо воздействия на производительность или другого воздействия из-за этого? Любая помощь приветствуется

1 Ответ

2 голосов
/ 30 мая 2020

Если вы погуглите здесь и где-нибудь еще, вы обнаружите, что UDF не могут использовать Any или карту.

Spark SQL, а DF и DS не поддерживают Any в схеме. Так что это плохая идея.

Иногда я сталкивался с Any, и это не может быть решено.

Короче: любой тип - это сигнал искать другие способы сделать что-то.

...