Как устранить эту ошибку "org.apache.spark.SparkException: запрошенное разбиение не соответствует таблице имен таблиц" в spark-shell - PullRequest
0 голосов
/ 17 апреля 2019

При записи данных в секционированную таблицу улья я получаю ошибку ниже.org.apache.spark.SparkException: Запрошенное разбиение не соответствует таблице имен таблиц:

Я преобразовал мой RDD в DF с использованием класса case, а затем пытаюсь записать данные в существующую многораздельную таблицу кустов.Но я получаю его ошибку, и согласно напечатанным журналам "Запрошенные разделы:" становится пустым.Столбцы разделов идут, как и ожидалось, в таблице кустов.

ошибка спарк-оболочки: -

scala> data1.write.format ("hive"). PartitionBy ("category", "state"). Mode ("append"). SaveAsTable("sampleb.sparkhive6")

org.apache.spark.SparkException: Запрошенное разделение не соответствует таблице sparkhive6:

Запрошенные разделы:

Разделы таблицы: категория,state

Формат таблицы кустов: -

hive> описать форматированный sparkhive6;

OK

имя_объекта имя_комода комментарий

txnno int
строка txndate
custno int
сумма double
строка продукта
строка города
строка расхода

информация о разделе

имя_символа тип_данных комментарий

строка категории
строка состояния

1 Ответ

0 голосов
/ 18 апреля 2019

Попробуйте использовать функцию insertInto() вместо saveAsTable().

scala> data1.write.format("hive")
.partitionBy("category", "state")
.mode("append")
.insertInto("sampleb.sparkhive6")

(or)

Зарегистрируйте временное представление поверх фрейма данных , затем напишите с помощью оператора SQL для вставки данных в таблицу кустов.

scala> data1.createOrReplaceTempView("temp_vw")
scala> spark.sql("insert into sampleb.sparkhive6 partition(category,state) select txnno,txndate,custno,amount,product,city,spendby,category,state from temp_vw")
...