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.;