如何从n行到n行提取数据集内容?

时间:2019-09-14 07:11:31

标签: apache-spark

我必须将Dataset的结果输出到Postgis(空间)数据库中。 Spark无法处理它,我不得不编写无法序列化的特定代码。这意味着我不能使用dataset.foreach(...)方法,并且必须从外部Spark任务中执行数据库插入。

但整个
List<Row> rows = ds.collectAsList()
将产生内存不足错误。

还有一个
List<Row> row = takeList();
仅返回数据集的前n行。

是否有一种顺序读取数据集的方法,以便我可以从头到尾读取其全部内容,每次仅提取固定数量的行?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用randomSplit方法将数据帧拆分为多个数据帧。 例如,拆分为3:

ds.randomSplit(Array(1,1,1))