Skip to content

Commit d1fbced

Browse files
committed
clean up spatial benchmarks
1 parent 3f04b24 commit d1fbced

6 files changed

Lines changed: 152 additions & 216 deletions

File tree

wayang-benchmark/src/main/java/org/apache/wayang/apps/spatial/ComplexSpatialFilterSpark.java

Lines changed: 0 additions & 77 deletions
This file was deleted.

wayang-benchmark/src/main/java/org/apache/wayang/apps/spatial/SpatialFilter.java

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
package org.apache.wayang.apps.spatial;
2020

2121
import org.apache.wayang.api.JavaPlanBuilder;
22+
import org.apache.wayang.core.api.spatial.SpatialGeometry;
23+
import org.apache.wayang.spark.Spark;
2224
import org.apache.wayang.spatial.data.WayangGeometry;
2325
import org.apache.wayang.core.api.Configuration;
2426
import org.apache.wayang.core.api.WayangContext;
@@ -31,38 +33,41 @@
3133

3234
public class SpatialFilter {
3335
public static void main(String[] args) {
34-
System.out.println(Arrays.toString((args)));
36+
System.out.println("Running Spatial Filter Benchmark with args " + Arrays.toString(args));
3537

36-
if (args.length <= 3) {
37-
System.err.print("Usage:");
38-
}
38+
String fileUrl = args[1];
39+
String platform = args[2];
40+
String selectivity = args[3];
3941

4042
WayangContext wayangContext = new WayangContext(new Configuration())
4143
.withPlugin(Java.basicPlugin())
42-
.withPlugin(Spatial.javaPlugin());
44+
.withPlugin(Spark.basicPlugin())
45+
.withPlugin(Spatial.plugin());
4346

4447
JavaPlanBuilder planBuilder = new JavaPlanBuilder(wayangContext)
4548
.withJobName("filter test")
4649
.withUdfJarOf(SpatialFilter.class);
4750

48-
WayangGeometry queryGeometry = WayangGeometry.fromStringInput(
49-
"POLYGON((12.777099609375 52.219050335542484, 13.991088867187502 52.219050335542484, 13.991088867187502 52.71766191466581, 12.777099609375 52.71766191466581, 12.777099609375 52.219050335542484))"
51+
SpatialGeometry queryGeometry = WayangGeometry.fromStringInput(
52+
"POLYGON((0.0 0.0, " + selectivity + " 0.0, " + selectivity + " " + selectivity + ", 0.0 " + selectivity + ", 0.0 0.0))"
5053
);
5154

52-
String fileUrl = args[1];
53-
String platform = args[2];
54-
5555
Collection<Long> outputcount =
5656
planBuilder.readTextFile(fileUrl)
5757
.spatialFilter(
5858
(input -> WayangGeometry.fromStringInput((input.split("\",")[0]).replace("\"", ""))),
5959
SpatialPredicate.INTERSECTS,
6060
queryGeometry
61-
).withTargetPlatform(Java.platform())
61+
).withTargetPlatform(
62+
switch (platform) {
63+
case "java" -> Java.platform();
64+
case "spark" -> Spark.platform();
65+
default -> Java.platform();
66+
}
67+
)
6268
.count()
6369
.collect();
6470

65-
System.out.println("Spatial Filter (INTERSECTS: " + outputcount);
66-
71+
System.out.println("Spatial Filter Result Size: " + outputcount);
6772
}
6873
}

wayang-benchmark/src/main/java/org/apache/wayang/apps/spatial/SpatialFilterPostgis.java

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,54 +26,49 @@
2626
import org.apache.wayang.java.Java;
2727
import org.apache.wayang.postgres.Postgres;
2828
import org.apache.wayang.postgres.operators.PostgresTableSource;
29-
import org.apache.wayang.spark.Spark;
29+
import org.apache.wayang.spatial.Spatial;
3030
import org.apache.wayang.spatial.data.WayangGeometry;
3131

3232
import java.util.Arrays;
3333
import java.util.Collection;
34-
import java.util.List;
35-
3634

3735
public class SpatialFilterPostgis {
38-
3936
public static void main(String[] args) {
37+
System.out.println("Running Spatial Filter Benchmark with args " + Arrays.toString(args) + " on Postgres");
38+
4039
Configuration configuration = new Configuration();
4140

42-
String tableName = "boxes_100k_1";
43-
String postgresUrl = args[2];
41+
String tableName = args[1];
42+
String node_name = args[2];
43+
String database_name = args[3];
44+
String selectivity = args[4];
4445

45-
configuration.setProperty("wayang.postgres.jdbc.url", "jdbc:postgresql://cx23:5432/spatialdb"); // Default port 5432
46+
configuration.setProperty("wayang.postgres.jdbc.url", "jdbc:postgresql://" + node_name + ":5432/" + database_name); // Default port 5432
4647
configuration.setProperty("wayang.postgres.jdbc.user", "wayang_user");
47-
4848
configuration.setProperty("wayang.postgres.jdbc.password", "wayang");
4949

50-
5150
WayangContext wayangContext = new WayangContext(configuration)
52-
.with(Java.basicPlugin())
53-
.with(Postgres.plugin());
51+
.withPlugin(Java.basicPlugin())
52+
.withPlugin(Postgres.plugin())
53+
.withPlugin(Spatial.plugin());
5454

55-
// Set up WayangContext.
5655
JavaPlanBuilder builder = new JavaPlanBuilder(wayangContext);
5756

58-
// Generate test data.
59-
final List<Integer> inputValues = Arrays.asList(1, 2, 3, 4, 5, 10);
60-
6157
SpatialGeometry queryGeometry = WayangGeometry.fromStringInput(
62-
"POLYGON((0.0 0.0, 1.0 0.0, 1.0 1.0, 0.0 1.0, 0.0 0.0))"
58+
"POLYGON((0.0 0.0, " + selectivity + " 0.0, " + selectivity + " " + selectivity + ", 0.0 " + selectivity + ", 0.0 0.0))"
6359
);
6460

65-
// Execute the job: keep only even numbers.
6661
final Collection<Long> outputcount = builder
6762
.readTable(new PostgresTableSource(tableName, "ST_AsText(geom)"))
6863
.spatialFilter(
6964
(input -> WayangGeometry.fromStringInput(input.getString(0))),
7065
SpatialPredicate.INTERSECTS,
7166
queryGeometry
72-
)
67+
).withSqlGeometryColumnName("geom")
7368
.withTargetPlatform(Postgres.platform())
7469
.count()
7570
.collect();
7671

77-
System.out.println("Spatial Postgres Filter (intersects): " + outputcount);
72+
System.out.println("Spatial Filter Postgres Result Size: " + outputcount);
7873
}
79-
}
74+
}

wayang-benchmark/src/main/java/org/apache/wayang/apps/spatial/SpatialFilterSpark.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

wayang-benchmark/src/main/java/org/apache/wayang/apps/spatial/SpatialJoin.java

Lines changed: 17 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import org.apache.wayang.core.api.WayangContext;
2626
import org.apache.wayang.core.api.spatial.SpatialPredicate;
2727
import org.apache.wayang.java.Java;
28-
import org.apache.wayang.java.platform.JavaPlatform;
2928
import org.apache.wayang.spark.Spark;
29+
import org.apache.wayang.spatial.Spatial;
3030
import org.apache.wayang.spatial.data.WayangGeometry;
3131

3232
import java.util.Arrays;
@@ -35,69 +35,35 @@
3535
public class SpatialJoin {
3636

3737
public static void main(String[] args) {
38+
System.out.println("Running Spatial Join Benchmark with args " + Arrays.toString(args));
3839

39-
System.out.println(Arrays.toString(args));
40-
41-
if (args.length <= 3) {
42-
System.err.print("Missing Paths: <input file1 URL> <input file2 URL> <platform>");
43-
System.exit(1);
44-
}
45-
46-
WayangContext wayangContext = new WayangContext(new Configuration());
47-
48-
String platform = args[2];
49-
switch (platform) {
50-
case "java":
51-
System.out.println("Activate only Java plugin");
52-
wayangContext.withPlugin(Java.basicPlugin());
53-
break;
54-
case "spark":
55-
System.out.println("Activate only Spark plugin");
56-
wayangContext.withPlugin(Spark.basicPlugin());
57-
break;
58-
default:
59-
System.out.println("Activate both Java and Spark plugin");
60-
wayangContext.withPlugin(Java.basicPlugin());
61-
wayangContext.withPlugin(Spark.basicPlugin());
62-
63-
}
64-
65-
JavaPlanBuilder planBuilder = new JavaPlanBuilder(wayangContext)
66-
.withJobName("Filter Test")
67-
.withUdfJarOf(SpatialJoin.class)
68-
.withUdfJarOf(JavaPlatform.class);
40+
WayangContext wayangContext = new WayangContext(new Configuration())
41+
.withPlugin(Java.basicPlugin())
42+
.withPlugin(Spark.basicPlugin())
43+
.withPlugin(Spatial.plugin());
6944

45+
JavaPlanBuilder planBuilder = new JavaPlanBuilder(wayangContext);
7046

7147
String file1Url = args[1];
7248
String file2Url = args[2];
49+
String platform = args[3];
7350
DataQuantaBuilder<UnarySourceDataQuantaBuilder<?, String>, String> table1 = planBuilder.readTextFile(file1Url);
7451
DataQuantaBuilder<UnarySourceDataQuantaBuilder<?, String>, String> table2 = planBuilder.readTextFile(file2Url);
7552

76-
77-
// Query Berlin
78-
WayangGeometry queryGeometry = WayangGeometry.fromStringInput(
79-
// "POLYGON((-84.07287597656251 37.16644514778088, -81.79870605468751 37.16644514778088, -81.79870605468751 38.15788469869244, -84.07287597656251 38.15788469869244, -84.07287597656251 37.16644514778088))"
80-
"POLYGON((12.777099609375 52.219050335542484, 13.991088867187502 52.219050335542484, 13.991088867187502 52.71766191466581, 12.777099609375 52.71766191466581, 12.777099609375 52.219050335542484))"
81-
// "POLYGON((13.054504394531252 52.305791671751265, 13.23577880859375 52.33433208908722, 13.342895507812502 52.359499525558654, 13.521423339843752 52.37459311076614, 13.609313964843752 52.33433208908722, 13.669738769531252 52.320903597434054, 13.746643066406252 52.371239426380214, 13.787841796875002 52.40476481199653, 13.807067871093752 52.44830975509531, 13.807067871093752 52.48679443193377, 13.675231933593752 52.503516406073174, 13.686218261718752 52.54028236828442, 13.634033203125002 52.58035560366049, 13.537902832031252 52.612054291512536, 13.54339599609375 52.66372397759699, 13.47198486328125 52.69536233532457, 13.430786132812502 52.67871342471301, 13.359375000000002 52.645396558286066, 13.31817626953125 52.67371751370322, 13.24676513671875 52.67871342471301, 13.191833496093752 52.64872938781106, 13.16986083984375 52.612054291512536, 13.114929199218752 52.612054291512536, 13.09295654296875 52.57201003157308, 13.09295654296875 52.54529352469354, 13.08197021484375 52.50853175834131, 13.136901855468752 52.50853175834131, 13.065490722656252 52.473412273757006, 13.08197021484375 52.44663574493768, 13.046264648437502 52.40308914740344, 13.065490722656252 52.362854101276355, 13.054504394531252 52.305791671751265))"
82-
);
83-
8453
Collection<Long> outputcount = table1
8554
.spatialJoin(
86-
(line -> WayangGeometry.fromStringInput(line.split("\",")[0].replace("\"", ""))),
87-
// line -> WGeometry.fromStringInput(line),
55+
WayangGeometry::fromStringInput,
8856
table2,
89-
// line -> WGeometry.fromStringInput(line),
90-
(line -> WayangGeometry.fromStringInput(line.split("\",")[0].replace("\"", ""))),
57+
WayangGeometry::fromStringInput,
9158
SpatialPredicate.INTERSECTS
92-
)
93-
.withTargetPlatform(Spark.platform())
59+
).withTargetPlatform(
60+
switch (platform) {
61+
case "java" -> Java.platform();
62+
case "spark" -> Spark.platform();
63+
default -> Java.platform();
64+
})
9465
.count()
95-
.withTargetPlatform(Spark.platform())
9666
.collect();
97-
// .collect();
98-
// .map(pair -> pair.field0 + "\n" + pair.field1)//left.getWKT() + "\n" + right.getWKT();
99-
// .collect();
100-
// .writeTextFile("/incubator-wayang/wayang-applications/src/main/java/org/apache/wayang/applications/output.txt", input -> input, "join results");
101-
System.out.println("Spatial Join (intersects): " + outputcount);
67+
System.out.println("Spatial Join Result Size: " + outputcount);
10268
}
10369
}

0 commit comments

Comments
 (0)