如何在不登录控制台的情况下显示结果? 在运行执行时我有这样的,但有很多行:
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.
所以,这就是我决定不读取该文件的原因。
我还在我的 .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=关闭 log4j.logger.org.apache.spark.SparkEnv=关闭
到处出发。
结果好多了,但仍然让我烦恼。 因为应用程序会吃掉所有异常。
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|
+------+-----+
我不认为我已经完成了,因为如果你有例外 - 那么你需要看到他们,但是......
对于测试来说,这可以作为一个决定。 感谢所有参与对话的人。做出的决定实在令人难以理解。不过谢谢。
奔向2024年;请注意,您的“log4j”版本可能已升级为“2”,因此上面显示的条目如下所示(将“log4j”更改为“log4j2”)
log4j2.logger.org.apache.spark.util.ShutdownHookManager=关闭 log4j2.logger.org.apache.spark.SparkEnv=错误