Lea desde una tabla de colmena y escríbale usando spark sql

Estoy leyendo una tabla de Hive usando Spark SQL y asignándola a un scala val

val x = sqlContext.sql("select * from some_table")

Luego estoy procesando un poco con el marco de datos x y finalmente obtengo un marco de datos y, que tiene el esquema exacto como la tabla some_table.

Finalmente estoy tratando de insertar sobrescribir el marco de datos y en la misma tabla de colmena some_table

y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")

Entonces recibo el error

org.apache.spark.sql.AnalysisException: no se puede insertar sobrescribir en la tabla que también se está leyendo

Intenté crear una instrucción sql insert y dispararla usando sqlContext.sql () pero también me dio el mismo error.

¿Hay alguna forma de evitar este error? Necesito insertar los registros nuevamente en la misma tabla.

Hola, intenté hacer lo que sugerí, pero aún obtengo el mismo error.

val x = sqlContext.sql("select * from incremental.test2")
val y = x.limit(5)
y.registerTempTable("temp_table")
val dy = sqlContext.table("temp_table")
dy.write.mode("overwrite").insertInto("incremental.test2")

scala> dy.write.mode("overwrite").insertInto("incremental.test2")
             org.apache.spark.sql.AnalysisException: Cannot insert overwrite into table that is also being read from.;

Respuestas a la pregunta(3)

Su respuesta a la pregunta