Search in sources :

Example 66 with Script

use of org.apache.sysml.api.mlcontext.Script in project incubator-systemml by apache.

the class MLContextTest method testOutputJavaRDDStringCSVSparseDML.

/**
 * Reading from dense and sparse matrices is handled differently, so we have
 * tests for both dense and sparse matrices.
 */
@Test
public void testOutputJavaRDDStringCSVSparseDML() {
    System.out.println("MLContextTest - output Java RDD String CSV Sparse DML");
    String s = "M = matrix(0, rows=10, cols=10); M[1,1]=1; M[1,2]=2; M[2,1]=3; M[2,2]=4; print(toString(M));";
    Script script = dml(s).out("M");
    MLResults results = ml.execute(script);
    JavaRDD<String> javaRDDStringCSV = results.getJavaRDDStringCSV("M");
    List<String> lines = javaRDDStringCSV.collect();
    Assert.assertEquals("1.0,2.0", lines.get(0));
    Assert.assertEquals("3.0,4.0", lines.get(1));
}
Also used : Script(org.apache.sysml.api.mlcontext.Script) MLResults(org.apache.sysml.api.mlcontext.MLResults) Test(org.junit.Test)

Example 67 with Script

use of org.apache.sysml.api.mlcontext.Script in project incubator-systemml by apache.

the class MLContextTest method testDataFrameSumPYDMLDoublesWithNoIDColumnNoFormatSpecified.

@Test
public void testDataFrameSumPYDMLDoublesWithNoIDColumnNoFormatSpecified() {
    System.out.println("MLContextTest - DataFrame sum PYDML, doubles with no ID column, no format specified");
    List<String> list = new ArrayList<String>();
    list.add("2,2,2");
    list.add("3,3,3");
    list.add("4,4,4");
    JavaRDD<String> javaRddString = sc.parallelize(list);
    JavaRDD<Row> javaRddRow = javaRddString.map(new CommaSeparatedValueStringToDoubleArrayRow());
    List<StructField> fields = new ArrayList<StructField>();
    fields.add(DataTypes.createStructField("C1", DataTypes.DoubleType, true));
    fields.add(DataTypes.createStructField("C2", DataTypes.DoubleType, true));
    fields.add(DataTypes.createStructField("C3", DataTypes.DoubleType, true));
    StructType schema = DataTypes.createStructType(fields);
    Dataset<Row> dataFrame = spark.createDataFrame(javaRddRow, schema);
    Script script = pydml("print('sum: ' + sum(M))").in("M", dataFrame);
    setExpectedStdOut("sum: 27.0");
    ml.execute(script);
}
Also used : Script(org.apache.sysml.api.mlcontext.Script) StructField(org.apache.spark.sql.types.StructField) StructType(org.apache.spark.sql.types.StructType) ArrayList(java.util.ArrayList) Row(org.apache.spark.sql.Row) Test(org.junit.Test)

Example 68 with Script

use of org.apache.sysml.api.mlcontext.Script in project incubator-systemml by apache.

the class MLContextTest method testDataFrameSumPYDMLDoublesWithIDColumn.

@Test
public void testDataFrameSumPYDMLDoublesWithIDColumn() {
    System.out.println("MLContextTest - DataFrame sum PYDML, doubles with ID column");
    List<String> list = new ArrayList<String>();
    list.add("1,1,2,3");
    list.add("2,4,5,6");
    list.add("3,7,8,9");
    JavaRDD<String> javaRddString = sc.parallelize(list);
    JavaRDD<Row> javaRddRow = javaRddString.map(new CommaSeparatedValueStringToDoubleArrayRow());
    List<StructField> fields = new ArrayList<StructField>();
    fields.add(DataTypes.createStructField(RDDConverterUtils.DF_ID_COLUMN, DataTypes.DoubleType, true));
    fields.add(DataTypes.createStructField("C1", DataTypes.DoubleType, true));
    fields.add(DataTypes.createStructField("C2", DataTypes.DoubleType, true));
    fields.add(DataTypes.createStructField("C3", DataTypes.DoubleType, true));
    StructType schema = DataTypes.createStructType(fields);
    Dataset<Row> dataFrame = spark.createDataFrame(javaRddRow, schema);
    MatrixMetadata mm = new MatrixMetadata(MatrixFormat.DF_DOUBLES_WITH_INDEX);
    Script script = pydml("print('sum: ' + sum(M))").in("M", dataFrame, mm);
    setExpectedStdOut("sum: 45.0");
    ml.execute(script);
}
Also used : Script(org.apache.sysml.api.mlcontext.Script) StructType(org.apache.spark.sql.types.StructType) ArrayList(java.util.ArrayList) StructField(org.apache.spark.sql.types.StructField) Row(org.apache.spark.sql.Row) MatrixMetadata(org.apache.sysml.api.mlcontext.MatrixMetadata) Test(org.junit.Test)

Example 69 with Script

use of org.apache.sysml.api.mlcontext.Script in project incubator-systemml by apache.

the class MLContextTest method testOutputDataFrameFromMatrixDML.

@Test
public void testOutputDataFrameFromMatrixDML() {
    System.out.println("MLContextTest - output DataFrame from matrix DML");
    String s = "M = matrix('1 2 3 4', rows=2, cols=2);";
    Script script = dml(s).out("M");
    Dataset<Row> df = ml.execute(script).getMatrix("M").toDF();
    Dataset<Row> sortedDF = df.sort(RDDConverterUtils.DF_ID_COLUMN);
    List<Row> list = sortedDF.collectAsList();
    Row row1 = list.get(0);
    Assert.assertEquals(1.0, row1.getDouble(0), 0.0);
    Assert.assertEquals(1.0, row1.getDouble(1), 0.0);
    Assert.assertEquals(2.0, row1.getDouble(2), 0.0);
    Row row2 = list.get(1);
    Assert.assertEquals(2.0, row2.getDouble(0), 0.0);
    Assert.assertEquals(3.0, row2.getDouble(1), 0.0);
    Assert.assertEquals(4.0, row2.getDouble(2), 0.0);
}
Also used : Script(org.apache.sysml.api.mlcontext.Script) Row(org.apache.spark.sql.Row) Test(org.junit.Test)

Example 70 with Script

use of org.apache.sysml.api.mlcontext.Script in project incubator-systemml by apache.

the class MLContextTest method testOutputDataFramePYDML.

@Test
public void testOutputDataFramePYDML() {
    System.out.println("MLContextTest - output DataFrame PYDML");
    String s = "M = full('1 2 3 4', rows=2, cols=2)";
    Script script = pydml(s).out("M");
    MLResults results = ml.execute(script);
    Dataset<Row> dataFrame = results.getDataFrame("M");
    List<Row> list = dataFrame.collectAsList();
    Row row1 = list.get(0);
    Assert.assertEquals(1.0, row1.getDouble(0), 0.0);
    Assert.assertEquals(1.0, row1.getDouble(1), 0.0);
    Assert.assertEquals(2.0, row1.getDouble(2), 0.0);
    Row row2 = list.get(1);
    Assert.assertEquals(2.0, row2.getDouble(0), 0.0);
    Assert.assertEquals(3.0, row2.getDouble(1), 0.0);
    Assert.assertEquals(4.0, row2.getDouble(2), 0.0);
}
Also used : Script(org.apache.sysml.api.mlcontext.Script) MLResults(org.apache.sysml.api.mlcontext.MLResults) Row(org.apache.spark.sql.Row) Test(org.junit.Test)

Aggregations

Script (org.apache.sysml.api.mlcontext.Script)206 Test (org.junit.Test)188 ArrayList (java.util.ArrayList)64 Row (org.apache.spark.sql.Row)53 MLResults (org.apache.sysml.api.mlcontext.MLResults)47 StructType (org.apache.spark.sql.types.StructType)36 StructField (org.apache.spark.sql.types.StructField)35 MatrixMetadata (org.apache.sysml.api.mlcontext.MatrixMetadata)35 DenseVector (org.apache.spark.ml.linalg.DenseVector)14 Vector (org.apache.spark.ml.linalg.Vector)14 VectorUDT (org.apache.spark.ml.linalg.VectorUDT)14 Matrix (org.apache.sysml.api.mlcontext.Matrix)13 MatrixObject (org.apache.sysml.runtime.controlprogram.caching.MatrixObject)13 MLContext (org.apache.sysml.api.mlcontext.MLContext)9 MatrixBlock (org.apache.sysml.runtime.matrix.data.MatrixBlock)9 Tuple2 (scala.Tuple2)9 List (java.util.List)8 URL (java.net.URL)7 DMLScript (org.apache.sysml.api.DMLScript)7 Seq (scala.collection.Seq)7