簡體   English   中英

如何避免Scala中Python的輸出流?

[英]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中顯示輸出流。 有什么選擇可以避免這種情況嗎?

Spark上下文初始化

提前致謝 :)

下面的方法對我有用。

  1. 在某個目錄中創建文件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

  2. cd / home / vijay / py-test-log // log4j.props文件應該在這里

  3. 然后從這個目錄中放下pyspark,你在其中有log4j.properties

    $ pwd
    / home / vijay / py-test-log
    $ / usr / lib / spark-1.2.0-bin-hadoop2.3 / bin / pyspark

  4. 都做完了 pyspark將從啟動位置加載log4j.props文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM