Red de conocimiento informático - Conocimiento informático - Cómo resolver el problema de la velocidad de escritura lenta de Hive en Spark

Cómo resolver el problema de la velocidad de escritura lenta de Hive en Spark

dataframe.registerTempTable("resultado")

sql(s""INSERT OVERWRITE Table $outputTable PARTITION (dt ='$outputDate') select * from result"")

Y el completo El proceso de generación de datos de resultados solo toma aproximadamente 4 minutos, como el siguiente método: guarde los resultados en hdfs en forma de archivo de texto:

result.rdd.saveAsTextFile(output_tmp_dir)

Esto muestra que las operaciones de escritura de Hive toman mucho tiempo.

Para optimizar este fenómeno, puede guardar el archivo en un formato que coincida con el archivo de la tabla de colmena y luego usar la carga de colmena para mover el archivo de resultados generado directamente al directorio especificado. El código es el siguiente:

result.rdd.map { r => r.mkString("\001") }.repartition(partitions).saveAsTextFile(output_tmp_dir)

sql (s" ""cargar datos en la ruta '$output_tmp_dir' sobrescribir en la tabla $partición de salida (dt='$dt')""")