2 votes

Comptage des mots à l'aide de Spark Structured Streaming avec Python

Je suis très novice en matière de Spark. Cet exemple est extrait du Structured Streaming Programming Guide de Spark :

from pyspark.sql import SparkSession
from pyspark.sql.functions import explode
from pyspark.sql.functions import split

spark = SparkSession \
            .builder \
            .appName("StructuredNetworkWordCount") \
            .getOrCreate()

# Create DataFrame representing the stream of input lines from connection to localhost:9999
       lines = spark \
         .readStream \
         .format("socket") \
         .option("host", "localhost") \
         .option("port", 9999) \
         .load()

# Split the lines into words
      words = lines.select(
        explode(
   split(lines.value, " ")
   ).alias("word")
   )

 # Generate running word count
     wordCounts = words.groupBy("word").count()

 # Start running the query that prints the running counts to the console
    query = wordCounts \
          .writeStream \
          .outputMode("complete") \
          .format("console") \
          .start()

query.awaitTermination()

J'ai besoin de modifier ce code pour compter les mots qui commencent par la lettre "B" et qui ont plus de 6 comptes. Comment puis-je le faire ?

0voto

espartian Points 35

La solution est la suivante :

wordCountsDF = wordsDF.groupBy('word').count().where('word.startsWith("B")' and 'count > 6')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X