Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generics #477

Merged
merged 13 commits into from
Dec 30, 2022
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TrimLast1DigitDbl.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TrimLast1DigitDbl extends TrimLastDigitsDbl {
public abstract class TrimLast1DigitDbl extends TrimLastDigitsDbl {

public TrimLast1DigitDbl() {
super(1);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TrimLast1DigitInt.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TrimLast1DigitInt extends TrimLastDigitsInt {
public abstract class TrimLast1DigitInt extends TrimLastDigitsInt {

public TrimLast1DigitInt() {
super(1);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TrimLast2DigitsDbl.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TrimLast2DigitsDbl extends TrimLastDigitsDbl {
public abstract class TrimLast2DigitsDbl extends TrimLastDigitsDbl {

public TrimLast2DigitsDbl() {
super(2);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TrimLast2DigitsInt.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TrimLast2DigitsInt extends TrimLastDigitsInt {
public abstract class TrimLast2DigitsInt extends TrimLastDigitsInt {

public TrimLast2DigitsInt() {
super(2);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TrimLast3DigitsDbl.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TrimLast3DigitsDbl extends TrimLastDigitsDbl {
public abstract class TrimLast3DigitsDbl extends TrimLastDigitsDbl {

public TrimLast3DigitsDbl() {
super(3);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TrimLast3DigitsInt.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TrimLast3DigitsInt extends TrimLastDigitsInt {
public abstract class TrimLast3DigitsInt extends TrimLastDigitsInt {

public TrimLast3DigitsInt() {
super(3);
Expand Down
55 changes: 12 additions & 43 deletions core/src/main/java/zingg/hash/TrimLastDigitsDbl.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
package zingg.hash;

import org.apache.spark.sql.Row;
import org.apache.spark.sql.api.java.UDF1;
import org.apache.spark.sql.types.DataTypes;

import zingg.client.ZFrame;

public class TrimLastDigitsDbl extends HashFunction implements UDF1<Double, Double> {
/**
* Base class for hash functions related to trimming of doubles
* @author vikasgupta
*
* @param <D>
* @param <R>
* @param <C>
* @param <T>
*/
public abstract class TrimLastDigitsDbl<D,R,C,T> extends HashFunction<D,R,C,T> {
int numDigits;
static final int[] POWERS_OF_10 = {1, 10, 100, 1000, 10000, 100000};
public TrimLastDigitsDbl(int count) {
super("trimLast" + count + "DigitsDbl", DataTypes.DoubleType, DataTypes.DoubleType, true);
super("trimLast" + count + "DigitsDbl");
this.numDigits = count;
}

@Override

public Double call(Double field) {
Double r = null;
if (field == null) {
Expand All @@ -24,39 +27,5 @@ public Double call(Double field) {
}
return r;
}

public Object apply(Row ds, String column) {
return call((Double) ds.getAs(column));
}

@Override
public ZFrame apply(ZFrame ds, String column, String newColumn) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getAs(Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getAs(Object df, Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object apply(Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object apply(Object df, Object r, String column) {
// TODO Auto-generated method stub
return null;
}

}
51 changes: 10 additions & 41 deletions core/src/main/java/zingg/hash/TrimLastDigitsInt.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
package zingg.hash;

import org.apache.spark.sql.Row;
import org.apache.spark.sql.api.java.UDF1;
import org.apache.spark.sql.types.DataTypes;

import zingg.client.ZFrame;

public class TrimLastDigitsInt<D,R,C,T> extends HashFunction<D,R,C,T> implements UDF1<Integer, Integer> {
/**
* Base class for hash functions related to trimming of integers
* @author vikasgupta
*
* @param <D>
* @param <R>
* @param <C>
* @param <T>
*/
public abstract class TrimLastDigitsInt<D,R,C,T> extends HashFunction<D,R,C,T> {
int numDigits;
static final int[] POWERS_OF_10 = {1, 10, 100, 1000, 10000, 100000};
public TrimLastDigitsInt(int count) {
super("trimLast" + count + "DigitsInt");//, DataTypes.IntegerType, DataTypes.IntegerType, true);
this.numDigits = count;
}

@Override
public Integer call(Integer field) {
Integer r = null;
if (field == null) {
Expand All @@ -25,38 +27,5 @@ public Integer call(Integer field) {
return r;
}

public Object apply(Row ds, String column) {
return call((Integer) ds.getAs(column));
}

@Override
public ZFrame apply(ZFrame ds, String column, String newColumn) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getAs(Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getAs(Object df, Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object apply(Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object apply(Object df, Object r, String column) {
// TODO Auto-generated method stub
return null;
}

}
50 changes: 11 additions & 39 deletions core/src/main/java/zingg/hash/TruncateDouble.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package zingg.hash;

import org.apache.spark.sql.Row;
import org.apache.spark.sql.api.java.UDF1;
import org.apache.spark.sql.types.DataTypes;

import zingg.client.ZFrame;

public class TruncateDouble<D,R,C,T> extends HashFunction<D,R,C,T> {
/**
* Base class for hash functions related to truncating of doubles
*
* @author vikasgupta
*
* @param <D>
* @param <R>
* @param <C>
* @param <T>
*/
public abstract class TruncateDouble<D,R,C,T> extends HashFunction<D,R,C,T> {
int numDecimalPlaces;
static final int[] POWERS_OF_10 = {1, 10, 100, 1000, 10000, 100000};
public TruncateDouble(int numDecimalPlaces) {
Expand All @@ -25,36 +29,4 @@ public Double call(Double field) {
return r;
}



@Override
public ZFrame apply(ZFrame<D,R,C> ds, String column, String newColumn) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getAs(Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object getAs(Object df, Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object apply(Object r, String column) {
// TODO Auto-generated method stub
return null;
}

@Override
public Object apply(Object df, Object r, String column) {
// TODO Auto-generated method stub
return null;
}

}
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TruncateDoubleTo1Place.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TruncateDoubleTo1Place extends TruncateDouble {
public abstract class TruncateDoubleTo1Place extends TruncateDouble {

public TruncateDoubleTo1Place() {
super(1);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TruncateDoubleTo2Places.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TruncateDoubleTo2Places extends TruncateDouble {
public abstract class TruncateDoubleTo2Places extends TruncateDouble {

public TruncateDoubleTo2Places() {
super(2);
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/zingg/hash/TruncateDoubleTo3Places.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zingg.hash;

public class TruncateDoubleTo3Places extends TruncateDouble {
public abstract class TruncateDoubleTo3Places extends TruncateDouble {

public TruncateDoubleTo3Places() {
super(3);
Expand Down
18 changes: 15 additions & 3 deletions core/src/main/java/zingg/spark/SparkLabelUpdater.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,42 @@
import org.apache.spark.sql.types.DataType;

import zingg.LabelUpdater;
import zingg.client.Arguments;
import zingg.client.ZinggClientException;
import zingg.client.ZinggOptions;
import zingg.client.pipe.Pipe;
import zingg.client.pipe.SparkPipe;



/**
* Spark specific implementation of LabelUpdater
*
* @author vikasgupta
*
*/
public class SparkLabelUpdater extends LabelUpdater<SparkSession, Dataset<Row>, Row, Column,DataType> {

public static String name = "zingg.spark.SparkLabelUpdater";
public static final Log LOG = LogFactory.getLog(SparkLabelUpdater.class);

public SparkLabelUpdater() {
setZinggOptions(ZinggOptions.UPDATE_LABEL);
setContext(new ZinggSparkContext());
}



@Override
public void init(Arguments args, String license) throws ZinggClientException {
super.init(args, license);
getContext().init(license);
}

@Override
public void cleanup() throws ZinggClientException {
// TODO Auto-generated method stub

}


protected Pipe setSaveModeOnPipe(Pipe p) {
SparkPipe pipe = (SparkPipe) p;
pipe.setMode(SaveMode.Overwrite);
Expand Down
19 changes: 12 additions & 7 deletions core/src/main/java/zingg/spark/SparkLabeller.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,19 @@
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

import org.apache.spark.sql.types.DataType;

import zingg.Labeller;
import zingg.client.Arguments;
import zingg.client.ZinggClientException;
import zingg.client.ZinggOptions;


/**
* Spark specific implementation of Labeller
*
* @author vikasgupta
*
*/
public class SparkLabeller extends Labeller<SparkSession, Dataset<Row>, Row, Column,DataType> {

public static String name = "zingg.spark.SparkLabeller";
Expand All @@ -28,11 +32,12 @@ public SparkLabeller() {
setContext(new ZinggSparkContext());
}

@Override
public void init(Arguments args, String license) throws ZinggClientException {
super.init(args, license);
getContext().init(license);
}

@Override
public void init(Arguments args, String license) throws ZinggClientException {
super.init(args, license);
getContext().init(license);
}


@Override
Expand Down
Loading