我想从scala中启动python中的spark上下文。
我添加了包'pyspark'来执行此操作。这是我试过的代码,这很好用。
代码段:
import sys.process._
var os: java.io.OutputStream = _
val python = Process(Seq("python","-i")).run(BasicIO.standard(os = _))
def pushLine(s: String): Unit = {
os.write(s"$s\n".getBytes("UTF-8"))
os.flush()
}
pushLine("from pyspark import SparkContext, SparkConf;from pyspark.sql import SQLContext;conf = SparkConf().setAppName('test').setMaster('local');sc = SparkContext(conf=conf);sqlContext = SQLContext(sc);")
现在,我的要求是避免在scala中显示的输出流。有没有选择可以避免这种情况?
提前致谢:)
答案 0 :(得分:1)
以下方法对我有用。
在某个目录中创建文件log4j.properties ,如 / home / vijay / py-test-log
log4j.rootCategory = WARN,控制台
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.target = System.err的
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =%d {yy / MM / dd HH:mm:ss}%p%c {1}:%m%n
log4j.logger.org.eclipse.jetty = WARN log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle = ERROR log4j.logger.org.apache.spark.repl.SparkIMain $ exprTyper = INFO log4j.logger.org.apache.spark.repl.SparkILoop $ SparkILoopInterpreter = INFO
cd / home / vijay / py-test-log // log4j.props文件应该在这里
然后来自这个目录的lauch pyspark你有log4j.properties
<强> $ PWD 强>
/家庭/维杰/ PY-测试日志
的 $ / usr / lib中/火花1.2.0彬hadoop2.3 / bin中/ pyspark 强>