mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
### What is this PR for? PR contains some improvements for completion (JDBC Interpreter): - types of completion - display of long values - refactoring of search of completions - uniqness of completions with type `keyword` - updating data in completer by pressing `Ctrl + .` - setting the schema filter to generate completions - fix highlighting code when used not default data source ### What type of PR is it? Improvement ### What is the Jira issue? https://issues.apache.org/jira/browse/ZEPPELIN-2297 ### How should this be tested? try to work with new completer ### Screenshots (if appropriate) **1. Types of completion**  **2. Display of long values** before  after  **3. Refactoring of search of completions. Updating data in completer by pressing `Ctrl + .`** before  after  **4. uniqness of completions with type keyword** before  after  **5. fix highlighting code when used not default data source** before  after  ### Questions: * Does the licenses files need update? no * Is there breaking changes for older versions? no * Does this needs documentation? no Author: Tinkoff DWH <tinkoff.dwh@gmail.com> Closes #2203 from tinkoff-dwh/ZEPPELIN-2297 and squashes the following commits: |
||
|---|---|---|
| .. | ||
| src/main | ||
| pom.xml | ||
| README.md | ||
Overview
Beam interpreter for Apache Zeppelin
Architecture
Current interpreter implementation supports the static repl. It compiles the code in memory, execute it and redirect the output to zeppelin.
Building the Beam Interpreter
You have to first build the Beam interpreter by enable the beam profile as follows:
mvn clean package -Pbeam -DskipTests
Notice
- Flink runner comes with binary compiled for scala 2.10. So, currently we support only Scala 2.10
Technical overview
-
Upon starting an interpreter, an instance of
JavaCompileris created. -
When the user runs commands with beam, the
JavaParsergo through the code to get a class that contains the main method. -
Then it replaces the class name with random class name to avoid overriding while compilation. it creates new out & err stream to get the data in new stream instead of the console, to redirect output to zeppelin.
-
If there is any error during compilation, it can catch and redirect to zeppelin.