[英]How to disable all logging info to the spark console from .net application
如何在不登錄控制台的情況下顯示結果? 在運行執行時我有這樣的,但有很多行:
20/08/28 13:35:27 INFO MemoryStore: MemoryStore started with capacity 366.3 MB
20/08/28 13:35:27 INFO SparkEnv: Registering OutputCommitCoordinator
20/08/28 13:35:27 INFO Utils: Successfully started service 'SparkUI' on port 4040.
20/08/28 13:35:27 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://
20/08/28 13:35:27 INFO SparkContext: Added JAR file:/C:/
20/08/28 13:35:27 INFO Executor: Starting executor ID driver on host localhost
對我來說不幸的是,在我的操縱之后沒有結果。 我發現文件 log4j.properties.template,將所有內容更改為 WARN 並且仍然有同樣的問題。 我還更改了日期時間格式以檢查文件是否已讀取。但格式仍然相同,例如log4j.appender.console.layout.ConversionPattern=%d{yy:MM:dd HH:mm:ss} %p %c{1}: %m%n.
所以,這就是我決定不讀取此文件的原因。 我也寫在 my.cs 文件中
var sc = new SparkContext(new SparkConf());
sc.SetLogLevel("WARN");
在我這樣的代碼中
namespace mySparkApp
{
class Program
{
static void Main(string[] args)
{
//Logger.getLogger("org").setLevel(Level.OFF);
//Logger.getLogger("akka").setLevel(Level.OFF);
var sc = new SparkContext(new SparkConf());
sc.SetLogLevel("WARN");
// Create a Spark session
SparkSession spark = SparkSession
.Builder()
.AppName("word_count_sample")
.GetOrCreate();
// Create initial DataFrame
DataFrame dataFrame = spark.Read().Text("input.txt");
// Count words
DataFrame words = dataFrame
.Select(Functions.Split(Functions.Col("value"), " ").Alias("words"))
.Select(Functions.Explode(Functions.Col("words"))
.Alias("word"))
.GroupBy("word")
.Count()
.OrderBy(Functions.Col("count").Desc());
// Show results
words.Show();
// Stop Spark session
spark.Stop();
}
}
}
然后重新啟動我的機器,但我有相同的。
您需要將文件log4j.properties.template
重命名/復制到log4j.properties
。
如果您想查看更少的日志,可以將日志記錄級別設置為ERROR
而不是WARN
。
您還可以放置這些行以避免記錄您遇到的其他錯誤。
log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF
log4j.logger.org.apache.spark.SparkEnv=ERROR
所以......我的斗爭是:
從文件夾 conf 中刪除 log4..blalalal.template 中的模板詞
像 # 此文件中的最后 2 行評論並添加
log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF log4j.logger.org.apache.spark.SparkEnv=OFF
處處設為OFF。
結果更好,但仍然讓我煩惱。 因為應用程序會吃掉所有異常。
C:\Users\User\mySparkApp>%SPARK_HOME%\bin\spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local bin\Debug\net5.0\microsoft-spark-2.4.x-0.10.0.jar dotnet bin\Debug\net5.0\mySparkApp.dll
20/12/27 22:29:39 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[2020-12-27T19:29:39.8205092Z] [USER-PC] [Info] [ConfigurationService] Using port 51569 for connection.
[2020-12-27T19:29:39.8243891Z] [USER-PC] [Info] [JvmBridge] JvMBridge port is 51569
+------+-----+
| word|count|
+------+-----+
| .NET| 3|
|Apache| 2|
| app| 2|
| This| 2|
| Spark| 2|
| World| 1|
|counts| 1|
| for| 1|
| words| 1|
| with| 1|
| Hello| 1|
| uses| 1|
+------+-----+
我不認為我已經完成了,因為如果您有異常-那么您需要查看它們,但是...
對於測試,這可能是一個決定。 感謝所有參與對話的人。 決策實在是難以理解。 不過謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.