diff --git a/scalding/pom.xml b/scalding/pom.xml index a5aae18f7e..6d0fd39a6c 100644 --- a/scalding/pom.xml +++ b/scalding/pom.xml @@ -35,6 +35,7 @@ 2.10.5 + 2.5.0 @@ -104,6 +105,12 @@ scala-reflect ${scala.version} + + + org.apache.hadoop + hadoop-client + ${hadoop.version} + diff --git a/scalding/src/main/java/org/apache/zeppelin/scalding/ScaldingInterpreter.java b/scalding/src/main/java/org/apache/zeppelin/scalding/ScaldingInterpreter.java index 86bb801ef8..7ebfb77286 100644 --- a/scalding/src/main/java/org/apache/zeppelin/scalding/ScaldingInterpreter.java +++ b/scalding/src/main/java/org/apache/zeppelin/scalding/ScaldingInterpreter.java @@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory; import com.twitter.scalding.ScaldingILoop; +import scala.Console; import scala.Some; import scala.tools.nsc.Settings; import scala.tools.nsc.settings.MutableSettings.BooleanSetting; @@ -56,9 +57,11 @@ public class ScaldingInterpreter extends Interpreter { } private ScaldingILoop interpreter; + private ByteArrayOutputStream out; public ScaldingInterpreter(Properties property) { super(property); + out = new ByteArrayOutputStream(); } @Override @@ -177,6 +180,8 @@ public class ScaldingInterpreter extends Interpreter { } linesToRun[lines.length] = "print(\"\")"; + Console.setOut(new PrintStream(out)); + out.reset(); Code r = null; String incomplete = ""; @@ -203,7 +208,7 @@ public class ScaldingInterpreter extends Interpreter { r = getResultCode(res); if (r == Code.ERROR) { - return new InterpreterResult(r); + return new InterpreterResult(r, out.toString()); } else if (r == Code.INCOMPLETE) { incomplete += s + "\n"; } else { @@ -214,7 +219,7 @@ public class ScaldingInterpreter extends Interpreter { if (r == Code.INCOMPLETE) { return new InterpreterResult(r, "Incomplete expression"); } else { - return new InterpreterResult(r); + return new InterpreterResult(r, out.toString()); } }