Читать из Mysql как поток - PullRequest
0 голосов
/ 03 июля 2018

когда я читаю из MySql базы данных,

    Map<String,String> jdbcOptions = new HashMap<String,String>();
                jdbcOptions.put("url", "url_");
                jdbcOptions.put("driver", "com.mysql.jdbc.Driver");
                jdbcOptions.put("dbtable", "tab");
                jdbcOptions.put("user", "root");
                jdbcOptions.put("password", "1234");
  Dataset<Row> ds =   sparkSession.read().format("jdbc").options(jdbcOptions).load(); 

Я ищу, как читать и помещать строки записи в Stream

Спасибо за пример.

1 Ответ

0 голосов
/ 04 июля 2018

Ну, вы можете написать что-то вроде этого:

    Dataset<Row> ds = //...;
    Stream<Row> stream = Arrays.stream(ds.collect());

Но учтите, что collect() - это действие , так что это вызовет выполнение, и оно извлечет все результаты из этой таблицы и отправит всю информацию драйверу, где она будет храниться в памяти как массив Row, что может привести к ошибке нехватки памяти, если таблица слишком велика для размещения в памяти. Также обратите внимание, что это может быть не самый эффективный способ получения данных из БД.

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