Прочитайте из таблицы улья и запишите обратно, используя spark sql
Я читаю таблицу Hive, используя Spark SQL, и назначаю ее для scala val
val x = sqlContext.sql("select * from some_table")
Затем я выполняю некоторую обработку с фреймом данных x и, наконец, придумываю фрейм данных y, который имеет точную схему в виде таблицы some_table.
Наконец, я пытаюсь вставить перезаписывающий фрейм данных y в ту же таблицу кустов some_table
y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")
Тогда я получаю ошибку
org.apache.spark.sql.AnalysisException: невозможно вставить перезапись в таблицу, которая также читается из
Я попытался создать SQL-оператор вставки и запустить его с помощью sqlContext.sql (), но он также дал мне ту же ошибку.
Есть ли способ, которым я могу обойти эту ошибку? Мне нужно вставить записи обратно в ту же таблицу.
Привет, я попытался сделать как предложено, но все равно получаю ту же ошибку.
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.;