/ / Apache spark no da salida correcta - apache-spark, apache-spark-sql

Apache spark no da salida correcta - apache-spark, apache-spark-sql

Soy un principiante y quiero aprender sobre chispa. Estoy trabajando con spark-shell y haciendo algunos experimentos para obtener resultados rápidos. Quiero obtener los resultados de los nodos de spark spark.

Tengo un total de dos máquinas y en eso, tengo un conductor y un trabajador en una sola máquina y otro trabajador en la otra máquina.

cuando quiero obtener el recuento, el resultado no es de ambos nodos. Tengo un archivo JSON para leer y hacer algunas verificaciones de rendimiento.

aquí está el código:

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

Tengo el archivo order.JSON se distribuye en ambas máquinas. Pero entonces también estoy obteniendo salida diferente

Respuestas

2 para la respuesta № 1

1. Si está ejecutando su chispa en nodos diferentes, entonces debe tener una ruta S3 o HDFS, asegúrese de que cada nodo pueda acceder a su fuente de datos.

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

Cambiar a

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

2. Si sus fuentes de datos son bastante pequeñas, entonces puede intentar usar Spark broadcast para compartir esos datos con otros nodos, entonces cada nodo tiene datos consistentes.https://spark.apache.org/docs/latest/rdd-programming-guide.html#shared-variables

3.Para imprimir, registra tus registros en la consola. Por favor, configure su archivo log4j en su carpeta spark conf. detalles de acceso Anular configuraciones Spark log4j