Essayer de covert mon projet scala étincelle dans le projet étincelle java. J'ai une exploitation forestière à scala comme ci-dessous
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.
}
Maintenant, je suis en train de l'écrire en Java 1.8 comme ci-dessous
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
}
J'ai essayé plusieurs façons, mais rien ne fonctionnait pour ouvrir une session printSchema en mode debug / info.
dataframe1.printSchema () // ce retour réellement vide ne sont donc pas en mesure d'ajouter à la chaîne.
Comment fait l'exploitation forestière se fait des projets de qualité de production étincelle java? Quelle est la meilleure approche que je dois suivre pour connecter le débogage?
Comment gérer le scénario ci-dessus? à savoir log.debug (dataframe1.printSchema ()) en java?
Vous pouvez utiliser df.schema.treeString
. Cette fonction renvoie une chaîne par rapport à l' unité () équivalent de Void
Java retournés par df.printSchema
. Cela est vrai dans Scala et je crois qu'il est le même dans Java.Let - moi savoir si cela aide.
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 = ()