/ / Apache spark non fornisce l'output corretto: apache-spark, apache-spark-sql

La scintilla di Apache non dà risultati corretti - apache-spark, apache-spark-sql

Sono un principiante e voglio conoscere Spark. Sto lavorando con spark-shell e sto facendo qualche esperimento per ottenere risultati veloci Voglio ottenere i risultati dai nodi di Spark Worker.

Ho un totale di due macchine e in questo ho un autista e un lavoratore su una sola macchina e un altro lavoratore sull'altra macchina.

quando voglio ottenere il conteggio il risultato non proviene da entrambi i nodi. Ho un file JSON da leggere e fare un controllo delle prestazioni.

ecco il codice:

spark-shell --conf spark.sql.warehouse.dir=C:spark-warehouse --master spark://192.168.0.31:7077
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val dfs = sqlContext.read.json("file:///C:/order.json")
dfs.count

Ho il file order.JSON è distribuito su entrambe le macchine. ma poi sto ottenendo risultati diversi

risposte:

2 per risposta № 1

1.Se si esegue la scintilla su nodi diversi, è necessario disporre del percorso S3 o HDFS, assicurarsi che ciascun nodo possa accedere all'origine dati.

val dfs = sqlContext.read.json("file:///C:/order.json")

Cambia in

val dfs = sqlContext.read.json("HDFS://order.json")

2.Se le tue origini dati sono piuttosto piccole, puoi provare a usare la trasmissione Spark per condividere quei dati con altri nodi, quindi ogni nodo ha dati coerenti.https://spark.apache.org/docs/latest/rdd-programming-guide.html#shared-variables

3.Per stampare il registro, accedere alla console configurare il file log4j nella cartella spark conf. accesso ai dettagli Sostituisci le configurazioni di Spark log4j