2017-07-18 1 views
0

Existe-t-il un moyen d'imprimer les données entrantes? Par exemple J'ai un readStream sur un dossier à la recherche de fichiers json, mais il semble y avoir un problème car je vois des 'nulls' dans la sortie d'agrégation.Entrée de débogage de diffusion structurée

val schema = StructType(
     StructField("id", LongType, false) :: 
     StructField("sid", IntegerType, true) :: 
     StructField("data", ArrayType(IntegerType, false), true) :: Nil) 

    val lines = spark. 
     readStream. 
     schema(schema). 
     json("in/*.json") 

    val top1 = lines.groupBy("id").count() 

    val query = top1.writeStream 
     .outputMode("complete") 
     .format("console") 
     .option("truncate", "false") 
     .start() 
+0

Pourquoi les lignes ne vous ' .writeStream.format ("console") 'alors? –

Répondre

0

Pour imprimer les données, vous pouvez ajouter queryName dans le flux d'écriture, en utilisant le nom de requête que vous pouvez imprimer.

Dans votre exemple

val query = top1.writeStream 
     .outputMode("complete") 
     .queryName("xyz") 
     .format("console") 
     .option("truncate", "false") 
     .start() 

Exécuter ce et vous pouvez afficher les données en utilisant la requête SQL

%sql select * from xyz 

ou vous pouvez créer dataframe

val df = spark.sql("select * from xyz")