我正在构建一个Spark Scala应用程序,该应用程序动态列出SQL Server数据库中的所有表,然后将它们加载到Apache Kudu。
我正在构建一个动态字符串变量,该变量跟踪每个表的主键列。主键在变量内用逗号分隔。以下是我的变量值的示例:
PrimaryKeys=storeId,storeNum,custId
以下是必需的功能,我必须输入List[String]
作为输入(其主键肯定是不正确的):
setRangePartitionColumns(List("storeId","storeNum","custId").asJava
如果我仅将PrimaryKeys
变量用于List
输入(如下所示),则该变量仅适用于单列(在此示例中,使用3个逗号分隔的值将失败):< / p>
setRangePartitionColumns(List(PrimaryKeys).asJava
以下是另一个示例,但使用的是Seq()
。我应该在下面以相同的格式放置相同的主键列名。手动键入列名可以很好地工作,但是我不知道如何动态输入变量值:
kuduContext.createTable(tableName, df.schema, Seq(PrimaryKey), kuduTableOptions)
有没有办法知道如何动态解析变量PrimaryKey
并将其馈送到任一函数中,而与包含的逗号分隔值的数量无关?
非常感谢您的协助。