Tratando para convertir mi proyecto Scala chispa en proyecto chispa java. Tengo un registro en la siguiente Scala
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
class ClassName{
val logger = LoggerFactory.getLogger("ClassName")
...
val dataframe1 = ....///read dataframe from text file.
...
logger.debug("dataframe1.printSchema : \n " + dataframe1.printSchema; //this is working fine.
}
Ahora estoy tratando de escribir en Java 1.8 de la siguiente manera
public class ClassName{
public static final Logger logger = oggerFactory.getLogger("ClassName");
...
Dataset<Row> dataframe1 = ....///read dataframe from text file.
...
logger.debug("dataframe1.printSchema : \n " + dataframe1.printSchema()); //this is not working
}
He intentado varias maneras, pero nada funcionó para iniciar la sesión en modo de depuración printSchema / Información.
dataframe1.printSchema () // esto realmente volver nula por lo tanto, no es capaz de anexar a la cadena.
¿Cómo es en realidad el registro de proyectos de grado de producción de chispa-java hecho? ¿Cuál es el mejor enfoque que debe seguir para iniciar la sesión en la depuración?
Cómo manejar el escenario anterior? es decir Log.DEBUG (dataframe1.printSchema ()) en Java?
Puede usar df.schema.treeString
. Esto devuelve una cadena si se compara con la unidad (equivalentes) de Void
Java devueltos por df.printSchema
. Esto es cierto en Scala y creo que es el mismo en Java.Let quiero saber si eso ayuda.
scala> val df = Seq(1, 2, 3).toDF()
df: org.apache.spark.sql.DataFrame = [value: int]
scala> val x = df.schema.treeString
x: String =
"root
|-- value: integer (nullable = false)
"
scala> val y = df.printSchema
root
|-- value: integer (nullable = false)
y: Unit = ()