Я создаю приложение Spark Scala, которое динамически перечисляет все таблицы в базе данных SQL Server, а затем загружает их в Apache Kudu.
Я строю динамическую строковую переменную, которая отслеживает столбцы первичного ключа для каждой таблицы.Первичные ключи разделяются запятой внутри переменной.Ниже приведен пример значения моей переменной:
PrimaryKeys=storeId,storeNum,custId
Ниже приведена обязательная функция, которую я должен ввести List[String]
в качестве ввода (первичные клавиши которого определенно не верны):
setRangePartitionColumns(List("storeId","storeNum","custId").asJava
Если я просто использую переменную PrimaryKeys
для ввода List
(как показано ниже), она будет работать только для одного столбца (и в этом примере произойдет сбой с тремя значениями, разделенными запятыми):
setRangePartitionColumns(List(PrimaryKeys).asJava
Ниже приведен другой пример, но с использованием Seq()
.Я должен поставить те же имена столбцов первичного ключа в том же формате ниже. Ручной ввод имен столбцов работает нормально, однако я не могу понять, как динамически вводить значения переменных:
kuduContext.createTable(tableName, df.schema, Seq(PrimaryKey), kuduTableOptions)
ЛюбойИдея, как я могу динамически анализировать переменную PrimaryKey
и передавать ее в любую функцию независимо от количества включенных значений, разделенных запятыми?
Любая помощь очень ценится.