Usando IDEA para escribir StructuredStreaming_scoket

Cálculo de datos de socket en tiempo real:
preparación
nc -lk 9999

hadoop spark sqoop hadoop spark hive hadoop
Inserte la descripción de la imagen aquí

Código de demostración:

def main (args: Array [String]): Unit = {
// 1 Crear sparksession
val spark: SparkSession = SparkSession.builder ()
.master (“local [*]”)
.appName (“StructStreaming_socket”)
.getOrCreate ()
val sc: SparkContext = spark.sparkContext
sc.setLogLevel ("WARN")
// 2 El tipo de datos en tiempo real de la lectura es Row
val socketDatasRow: DataFrame = spark.readStream.option ("host", "hadoop01").
option ("port "," 9999 ")
.format (" socket ")
.load ()
// 3 Procesamiento de datos y cálculo
import spark.implicits._
val socketDatasString: Dataset [String] = socketDatasRow.as [String]
val Word: Dataset [String] = socketDatasString.flatMap (a => {a.split ("")})
// Use DSL (SQL) para calcular los datos
val StructWordCount: Dataset [Row] = Word.groupBy ("value"). count (). sort ($ "count")
// 4 output (start-wait for shutdown)
StructWordCount.writeStream
.trigger (Trigger.ProcessingTime (0) ) // Ejecutar lo antes posible.format
("consola") // Salida de datos a la consola.
OutputMode ("complete") // Salida de todos los datos.start () //
Iniciar
cálculo.awaitTerminación () // = Esperar para cerrar
}

238 artículos originales publicados · elogiados 429 · 250,000 visitas

Supongo que te gusta

Origin blog.csdn.net/qq_45765882/article/details/105564029
Recomendado
Clasificación