[英]How to avoid output stream of Python in Scala?
我想在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中顯示輸出流。 有什么選擇可以避免這種情況嗎?
提前致謝 :)
下面的方法對我有用。
在某個目錄中創建文件log4j.properties ,例如/ home / vijay / py-test-log
log4j.rootCategory =警告,控制台
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 =警告log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle =錯誤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文件應該在這里
然后從這個目錄中放下pyspark,你在其中有log4j.properties
$ pwd
/ home / vijay / py-test-log
$ / usr / lib / spark-1.2.0-bin-hadoop2.3 / bin / pyspark
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.