当我从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
感谢您提供示例。
答案 0 :(得分:0)
好吧,你可以这样写:
Dataset<Row> ds = //...;
Stream<Row> stream = Arrays.stream(ds.collect());
但是请注意,collect()
是一个操作,因此这将触发执行,它将从该表中获取所有结果,并将所有信息发送至驱动程序。将作为Row
数组存储在内存中,如果表太大而无法容纳在内存中,则可能导致内存不足错误。
另外,请注意,这可能不是从数据库中获取数据的最有效方式。