我正在使用 Spark 3.1.1
随着 JAVA 8
,我正在试着分开一个 dataset<Row>
根据其中一个数值列(大于或小于阈值)的值,只有当行的某些字符串列值相同时,才可能进行拆分:我正在尝试以下操作:
Iterator<Row> iter2 = partition.toLocalIterator();
while (iter2.hasNext()) {
Row item = iter2.next();
//getColVal is a function that gets the value given a column
String numValue = getColVal(item, dim);
if (Integer.parseInt(numValue) < threshold)
pl.add(item);
else
pr.add(item);
但是如何在拆分之前检查相关行的其他列值(字符串)是否相同,以便执行拆分?
ps:在拆分之前,我尝试按列分组,如下所示:
Dataset<Row> newDataset=oldDataset.groupBy("col1","col4").agg(col("col1"));
但它不起作用
谢谢你的帮助
编辑:
我要拆分的示例数据集是:
abc,9,40,A
abc,7,50,A
cde,4,20,B
cde,3,25,B
如果阈值为 30
然后第一行和最后一行将形成两个数据集,因为它们的第一列和第四列是相同的;否则,分割是不可能的。
编辑:结果输出为
abc,9,40,A
abc,7,50,A
cde,4,20,B
cde,3,25,B
1条答案
按热度按时间nhjlsmyf1#
我主要使用
pyspark
但是你可以适应你的环境动态均值滤波