Я начал учить Scala и зажечь. Я новичок в этом стеке. Например, я sh создаю json приложение для чтения, которое выводит результат на консоль. Я использую SBT. Основной класс выглядит так:
import java.lang.Math
import org.apache.spark.sql.SparkSession
import sext._
object JsonReader extends App {
val json_data : String ="/data/data.json"
val spark = SparkSession
.builder
.appName("Spark Pi")
.getOrCreate()
import spark.implicits._
val test = spark.read.json(json_data)
case class JsonData(country:String,
id: BigInt,
points: BigInt,
price: Double,
title: String,
variety: String,
winery: String)
val df = test.as[JsonData]
Console.printf(df)
//Console.printf("check, check, 1,2,3, go")
}
Когда я запускаю приложение,
spark-submit --master local[*] --class com.example.JsonReader /home/app/target/scala-2.11/app-assembly-0.0.1.jar {/home/data/data.json}
Консоль показывает несколько предупреждающих сообщений перед остановкой приложения:
20/03/26 21:12:58 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
log4j:WARN No appenders could be found for logger (org.apache.spark.deploy.SparkSubmit$$anon$2).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Мой log4j. properties.template выглядит так:
# Set everything to be logged to the console
# log4j.rootCategory=INFO, console
log4j.rootLogger=DEBUG, DebugAppender
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.apache.spark.repl.Main=WARN
# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark_project.jetty=WARN
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR
Так, где я могу найти стандартный вывод? Как показать вывод моего основного класса после запуска приложения?