我有来自Server的数据,我需要在Apache (Databricks)中操作这些数据。
在Server中,该表的三个键列使用区分大小写的排序规则选项,因此这些特定列区分大小写,而表中的其他列则不区分大小写。这些列是来自供应商应用程序的简短的α-数字标识符,我们必须能够在谓词和连接条件中以区分大小写的方式使用它们,同时能够以不区分大小写的方式使用其他列。
表被导出为CSV。
除了使用较低和较高的函数外,是否有一种方法可以将区分大小写的列比较与不区分大小写的列进行比较?我也可以将这个CSV导入到Databricks表中,但这似乎没有为联接提供类似的元数据级别的排序选项。
谢谢。
发布于 2018-10-20 19:30:02
在星火2.x中没有这样的选择。
如果需要为下游处理保留数据的大小写,但也需要区分大小写的比较,则有三个选项:
df.where('x ciLT 'y) // ciLT is case-insensitive less than, as an example如果您主要在WHERE和ORDER/SORT BY中使用不区分大小写的操作,那么性能将相当好,因为数据行不会为处理而被拓宽。否则,这些列将在星火的内部行中“物化”,并将造成较小的性能损失。
如果您不需要为下游处理保留数据的情况,则在摄入期间切换到公共案例表示是正确的方法。
https://stackoverflow.com/questions/52129127
复制相似问题