Как передать несколько столбцов в методе разбивки в Spark
Я новичок в Spark. Я хочу записать данные фрейма в таблицу кустов. Таблица кустов разделена на столбец с несколькими столбцами. Через клиент Hivemetastore я получаю столбец раздела и передаю его как переменную в предложении partitionby в методе записи dataframe.
var1="country","state" (Getting the partiton column names of hive table)
dataframe1.write.partitionBy(s"$var1").mode("overwrite").save(s"$hive_warehouse/$dbname.db/$temp_table/")
Когда я выполняю приведенный выше код, он выдает ошибку с разделом "страна","государство" не существует. Я думаю, что это берет "страну","государство" как строку.
Можете ли вы помочь мне.
1 ответ
Решение
Функция partitionBy принимает varargs
не список Вы можете использовать это как
dataframe1.write.partitionBy("country","state").mode("overwrite").save(s"$hive_warehouse/$dbname.db/$temp_table/")
Или в Scala вы можете преобразовать список в Varargs, как
val columns = Seq("country","state")
dataframe1.write.partitionBy(columns:_*).mode("overwrite").save(s"$hive_warehouse/$dbname.db/$temp_table/")