Search in sources :

Example 6 with ZSession

use of org.apache.zeppelin.client.ZSession in project zeppelin by apache.

the class PrestoExample method main.

public static void main(String[] args) {
    ZSession session = null;
    try {
        ClientConfig clientConfig = new ClientConfig("http://localhost:8080");
        Map<String, String> intpProperties = new HashMap<>();
        session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("presto").setIntpProperties(intpProperties).build();
        session.start(new SimpleMessageHandler());
        // single sql
        ExecuteResult result = session.execute("show schemas");
        System.out.println("show schemas result : " + result.getResults().get(0).getData());
        // multiple sql
        result = session.execute("use tpch_text_5;\nshow tables");
        System.out.println("show tables result: " + result.getResults().get(0).getData());
        // select
        result = session.execute("select count(1) from lineitem");
        System.out.println("Result status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
        // invalid sql
        result = session.execute("select * from unknown_table");
        System.out.println("Result status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (session != null) {
            try {
                session.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
Also used : HashMap(java.util.HashMap) ClientConfig(org.apache.zeppelin.client.ClientConfig) ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession) SimpleMessageHandler(org.apache.zeppelin.client.websocket.SimpleMessageHandler)

Example 7 with ZSession

use of org.apache.zeppelin.client.ZSession in project zeppelin by apache.

the class SparkExample method main.

public static void main(String[] args) {
    ZSession session = null;
    try {
        ClientConfig clientConfig = new ClientConfig("http://localhost:8080");
        Map<String, String> intpProperties = new HashMap<>();
        intpProperties.put("spark.master", "local[*]");
        session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("spark").setIntpProperties(intpProperties).build();
        session.start();
        System.out.println("Spark Web UI: " + session.getWeburl());
        // scala (single result)
        ExecuteResult result = session.execute("println(sc.version)");
        System.out.println("Spark Version: " + result.getResults().get(0).getData());
        // scala (multiple result)
        result = session.execute("println(sc.version)\n" + "val df = spark.createDataFrame(Seq((1,\"a\"), (2,\"b\")))\n" + "z.show(df)");
        // The first result is text output
        System.out.println("Result 1: type: " + result.getResults().get(0).getType() + ", data: " + result.getResults().get(0).getData());
        // The second result is table output
        System.out.println("Result 2: type: " + result.getResults().get(1).getType() + ", data: " + result.getResults().get(1).getData());
        System.out.println("Spark Job Urls:\n" + StringUtils.join(result.getJobUrls(), "\n"));
        // error output
        result = session.execute("1/0");
        System.out.println("Result status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
        // pyspark
        result = session.execute("pyspark", "df = spark.createDataFrame([(1,'a'),(2,'b')])\n" + "df.registerTempTable('df')\n" + "df.show()");
        System.out.println("PySpark dataframe: " + result.getResults().get(0).getData());
        // matplotlib
        result = session.execute("ipyspark", "%matplotlib inline\n" + "import matplotlib.pyplot as plt\n" + "plt.plot([1,2,3,4])\n" + "plt.ylabel('some numbers')\n" + "plt.show()");
        System.out.println("Matplotlib result, type: " + result.getResults().get(0).getType() + ", data: " + result.getResults().get(0).getData());
        // sparkr
        result = session.execute("r", "df <- as.DataFrame(faithful)\nhead(df)");
        System.out.println("Sparkr dataframe: " + result.getResults().get(0).getData());
        // spark sql
        result = session.execute("sql", "select * from df");
        System.out.println("Spark Sql dataframe: " + result.getResults().get(0).getData());
        // spark invalid sql
        result = session.execute("sql", "select * from unknown_table");
        System.out.println("Result status: " + result.getStatus() + ", data: " + result.getResults().get(0).getData());
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (session != null) {
            try {
                session.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
Also used : HashMap(java.util.HashMap) ClientConfig(org.apache.zeppelin.client.ClientConfig) ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession)

Example 8 with ZSession

use of org.apache.zeppelin.client.ZSession in project zeppelin by apache.

the class ZSessionIntegrationTest method testZSession_Shell.

@Test
public void testZSession_Shell() throws Exception {
    ZSession session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("sh").build();
    try {
        session.start();
        assertNull(session.getWeburl());
        assertNotNull(session.getNoteId());
        notebook.processNote(session.getNoteId(), note -> {
            assertEquals(2, note.getParagraphCount());
            assertTrue(note.getParagraph(0).getText(), note.getParagraph(0).getText().startsWith("%sh.conf"));
            return null;
        });
        ExecuteResult result = session.execute("pwd");
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        result = session.execute("invalid_command");
        assertEquals(Status.ERROR, result.getStatus());
        assertEquals(2, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("command not found"));
        assertEquals("TEXT", result.getResults().get(1).getType());
        assertTrue(result.getResults().get(1).getData(), result.getResults().get(1).getData().contains("ExitValue"));
        notebook.processNote(session.getNoteId(), note -> {
            assertEquals(4, note.getParagraphCount());
            assertEquals("%sh invalid_command", note.getParagraph(3).getText());
            return null;
        });
    } finally {
        session.stop();
    }
}
Also used : ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession) Test(org.junit.Test)

Example 9 with ZSession

use of org.apache.zeppelin.client.ZSession in project zeppelin by apache.

the class ZSessionIntegrationTest method testZSession_Spark_Submit.

@Test
public void testZSession_Spark_Submit() throws Exception {
    Map<String, String> intpProperties = new HashMap<>();
    intpProperties.put("SPARK_HOME", sparkHome);
    intpProperties.put("spark.master", "local[*]");
    ZSession session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("spark").setIntpProperties(intpProperties).build();
    try {
        session.start();
        assertNotNull(session.getWeburl());
        assertNotNull(session.getNoteId());
        // scala
        ExecuteResult result = session.submit("sc.version");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("2.4.4"));
        assertEquals(0, result.getJobUrls().size());
        // pyspark
        result = session.submit("pyspark", "df = spark.createDataFrame([(1,'a'),(2,'b')])\ndf.registerTempTable('df')\ndf.show()");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertEquals("+---+---+\n" + "| _1| _2|\n" + "+---+---+\n" + "|  1|  a|\n" + "|  2|  b|\n" + "+---+---+", result.getResults().get(0).getData().trim());
        assertTrue(result.getJobUrls().size() > 0);
        // sparkr
        result = session.submit("r", "df <- as.DataFrame(faithful)\nhead(df)");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("eruptions waiting"));
        assertEquals(2, result.getJobUrls().size());
        // spark sql
        result = session.submit("sql", "select * from df");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TABLE", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("1\ta\n2\tb\n"));
        assertTrue(result.getJobUrls().size() > 0);
        // spark invalid sql
        result = session.submit("sql", "select * from unknown_table");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(Status.ERROR, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TEXT", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("Table or view not found"));
        assertEquals(0, result.getJobUrls().size());
        // cancel
        result = session.submit("sc.range(1,100).map(e=>{Thread.sleep(1000);e}).collect()");
        assertFalse("Status is: " + result.getStatus().toString(), result.getStatus().isCompleted());
        result = session.waitUntilRunning(result.getStatementId());
        session.cancel(result.getStatementId());
        assertEquals(result.toString(), Status.RUNNING, result.getStatus());
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.ABORT, result.getStatus());
    } finally {
        session.stop();
    }
}
Also used : HashMap(java.util.HashMap) ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession) Test(org.junit.Test)

Example 10 with ZSession

use of org.apache.zeppelin.client.ZSession in project zeppelin by apache.

the class ZSessionIntegrationTest method testZSession_Jdbc_Submit.

// @Test
public void testZSession_Jdbc_Submit() throws Exception {
    Map<String, String> intpProperties = new HashMap<>();
    intpProperties.put("default.driver", "com.mysql.jdbc.Driver");
    intpProperties.put("default.url", "jdbc:mysql://localhost:3306/");
    intpProperties.put("default.user", "root");
    ZSession session = ZSession.builder().setClientConfig(clientConfig).setInterpreter("jdbc").setIntpProperties(intpProperties).build();
    try {
        session.start();
        assertEquals("", session.getWeburl());
        assertNotNull(session.getNoteId());
        // show databases
        ExecuteResult result = session.submit("show databases");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TABLE", result.getResults().get(0).getType());
        assertTrue(result.getResults().get(0).getData(), result.getResults().get(0).getData().contains("Database"));
        // select statement
        result = session.submit("SELECT 1 as c1, 2 as c2");
        result = session.waitUntilFinished(result.getStatementId());
        assertEquals(result.toString(), Status.FINISHED, result.getStatus());
        assertEquals(1, result.getResults().size());
        assertEquals("TABLE", result.getResults().get(0).getType());
        assertEquals("c1\tc2\n1\t2\n", result.getResults().get(0).getData());
    } finally {
        session.stop();
    }
}
Also used : HashMap(java.util.HashMap) ExecuteResult(org.apache.zeppelin.client.ExecuteResult) ZSession(org.apache.zeppelin.client.ZSession)

Aggregations

ZSession (org.apache.zeppelin.client.ZSession)19 ExecuteResult (org.apache.zeppelin.client.ExecuteResult)18 HashMap (java.util.HashMap)17 ClientConfig (org.apache.zeppelin.client.ClientConfig)9 SimpleMessageHandler (org.apache.zeppelin.client.websocket.SimpleMessageHandler)9 Test (org.junit.Test)8 IOException (java.io.IOException)1 CompositeMessageHandler (org.apache.zeppelin.client.websocket.CompositeMessageHandler)1