имеет ли смысл загружать конфигурации как одноэлементный объект в приложении spark? - PullRequest
0 голосов
/ 13 марта 2020

Я использую spark- sql -2.4.1v с java8. Мне нужно передать некоторую информацию о конфигурации / метаданных в моем приложении spark.

Существует несколько таблиц мета-информации, у меня мало сомнений

  1. каждая таблица мета-информации должна регистрироваться / добавляться как новая широковещательная переменная.

  2. Понятно, что мне нужно использовать одноэлементный класс для этих метаданных, необходимо ли это в контекст применения искры? в спарк на каждого исполнителя у меня была бы разная копия синглтона, верно? Более того, все должно быть неизменным в искре. тогда я должен использовать синглтон? если мне нужно в этом контексте, имеет ли смысл? в каком контексте мне нужно использовать синглтон в приложении spark?

  3. Скажем, у меня есть метаинформация, например, широковещательная переменная типа

     Configuration conf = Configuration.getInstance(); //singleton class
    
>        Broadcast<Map<String, Object>> broadcastVariable =
>                 javaSparkContext.broadcast(
>                         CacheLoader.loadCache(
>                                 CacheLoader.loadDataFrameReader(sparkSession, conf.getDataConfig())));
> 

Здесь, в Map broadcastVariable, каждое значение, т. Е. Object, является другим классом (Map), т.е. другой картой, внутри которой (т. Е. Object является другим (Map)). У меня есть несколько других Map, внутри которых (т. Е. Object является другим объектом класса). т.е. объект CompanyInformation).

i.e. first level Map is countryName -> HashMap<String, Object>
     second level Map is stateNames -> HashMap<String, Object>
     third level Map is companyName -> Company object.

этот вид дизайна работает?

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