【发布时间】:2018-04-20 09:59:22
【问题描述】:
我有两个列表如下:
输入列:
List(col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13)
输入数据:
List(
Map(col2 -> dummy string, col7 -> 2016-01-01, col11 -> 2011-01-01),
Map(col2 -> dummy string, col7 -> 2018-01-01, col11 -> 2018-01-01),
Map(col2 -> dummy string, col7 -> 2018-04-01, col11 -> 2018-04-01),
Map(col2 -> dummy string, col7 -> 2016-01-01, col11 -> 2016-01-01)
)
我想要做的是在我遍历它们之后生成一个字符串。因此,如果 colX 名称匹配,则在 Map 中给它值,否则给它 NULL 值。
所以在上面的示例中,我将循环 4 次,创建 4 个返回的字符串:
(Null, dummy string, Null, Null, Null, Null,2016-01-01, Null) ..etc..
我想如下开始。遍历我的输入列列表,然后遍历我的输入数据的每个键,但我觉得我还有很长的路要走。
inputColumns.foreach(column => {
inputData.foreach{ case (k,v) =>
// I get a constructor cannot be instantiated to expected type error
}
})
【问题讨论】:
-
变量
col1, ...,col13中有什么? -
没什么,它们只是我的表格列的名称。我正在尝试构建一个 spark sql 查询,该查询将帮助我的插入指示值应放置在我要构建的字符串中的位置。