我有一个要求,必须根据实体名获取表名。例如,如果实体名称为“quote\u header”,则应返回表名“q2cods.quote\u header\u tss”,如果实体名称为“quote\u line\u items”,则应返回表名“q2cods.quote\u line\u item\u tss”
val srcentity_dstTable = dataFrame.select("ENTITY_NM", "DS_TABLE_NM")
srcentity_dstTable.show(200)
这是一个Dataframe,它有两列:entity\u nm和ds\u table\u nm
当我选择entity\u nm column并将其转换为一个列表时,值的顺序与上面的dataframe不同。
val srcentity_columns = srcentity_dstTable.select("ENTITY_NM").collect().map(_ (0)).toList
println(srcentity_columns)
val dst_table_names = srcentity_dstTable.select("DS_TABLE_NM").collect().map(_ (0)).toList
println(dst_table_names)
val mapcols = (srcentity_columns zip dst_table_names)
println(mapcols)
在这里,实体\u nm列表的顺序与dataframe不同,而是将所有quote\u标题放在第一位,将所有quote\u行\u项放在最后
请任何人让我知道为什么这种重新排序发生在实体\u nm只有当ds\u表\u nm列表是按顺序来的Dataframe。
1条答案
按热度按时间pb3skfrl1#
一种方法是创建一个新列并收集该新列。
例如: