我必须将Dataset
的结果输出到Postgis
(空间)数据库中。 Spark
无法处理它,我不得不编写无法序列化的特定代码。这意味着我不能使用dataset.foreach(...)
方法,并且必须从外部Spark
任务中执行数据库插入。
但整个
List<Row> rows = ds.collectAsList()
将产生内存不足错误。
还有一个
List<Row> row = takeList();
仅返回数据集的前n行。
是否有一种顺序读取数据集的方法,以便我可以从头到尾读取其全部内容,每次仅提取固定数量的行?
答案 0 :(得分:2)
您可以尝试使用randomSplit方法将数据帧拆分为多个数据帧。 例如,拆分为3:
ds.randomSplit(Array(1,1,1))